我有一个只包含0和1的矩阵。我想创建一个嵌套循环,它检查矩阵中的连续0并将数字打印为距离。我稍后会使用距离来计算矩阵点之间的距离。
这是我的代码和我的测试矩阵B.
B = [ 1 1 1 0 0 0 1
0 0 0 1 1 1 1];
for i=1:2
for j=1:7
if B(i,j)==0
jtemp=j;
distance=0;
while B(i,jtemp)==0
jtemp=jtemp+1;
distance=distance+1;
end
fprintf('%0.0f,The distance is\n',distance)
end
end
end
当我运行此代码时,我会得到类似的结果:
3,距离为
2,距离为
1,距离为
3,距离为
2,距离为
1,距离是
所以我的问题是为什么这段代码不能通过计算矩阵的一行中的连续0来打印距离
答案 0 :(得分:1)
这种行为是由于j
的连续调用(从1到7,无论jtemp的值是多少)。您可以插入条件(if j<jtemp
),告诉matlab不再进一步处理(continue
),直到j
再次匹配jtemp
。
for i=1:2
jtemp = 1;
for j=1:7
if j<jtemp
continue
end