【发布时间】:2014-08-26 06:15:17
【问题描述】:
在这段代码中,我必须找到我们的距离值,并且我必须保存小于或等于 425 且大于零的值。我估计在这个范围内大约有 18000 个值,我必须将所有值与 x1、x2、y1、y2 值一起保存。但是这种结构给了我错误。 var3 (variable_3) 给出了正确的答案,它给出了整个距离矩阵,但是当我们保存小于 425 的值时,它会导致错误,请帮助我,谢谢。var4 矩阵给出了零值。
var3 = zeros (258840,1);
var4 = zeros (18000,5);
m=1;
for n = 1: 258840
x1 = var1 (pairpoints(n,1), 1);
x2 = var1 (pairpoints(n,2), 1);
y1 = var1 (pairpoints(n,1), 2);
y2 = var1 (pairpoints(n,2), 2);
% distance formula
d1=(((x2-x1)^2)+((y2-y1)^2))^(0.5);
% save distance values in matrix named var3
lin = sub2ind(size(var3),n,1);
var3(lin) = d1;
if 0<d1<426
line = sub2ind(size(var4),m,1);
var4(line) = x1;
line = sub2ind(size(var4),m,2);
var4(line) = x2;
line = sub2ind(size(var4),m,3);
var4(line) = y1;
line = sub2ind(size(var4),m,4);
var4(line) = y2;
line = sub2ind(size(var4),m,5);
var4(line) = d1;
m=m+1;
end
end
【问题讨论】:
-
错误信息是什么,错误在哪一行???
标签: matlab if-statement for-loop matrix