我不理解matlab中for
循环的这段代码,我知道matlab中的循环通常看起来像:for ii=1:2:100
所以它从1开始直到100并且在每次迭代中你加2。
但是在这里我已经在循环中得到了这个条件而且我没有得到它的作用:
for ii=[1:w:rd(1)-w-border, rd(1)-w-border+1],
...
end;
w
和border
是作为参数传递的整数,rd
是图像/矩阵的大小(rd = size(image);
)
有人可以解释一下这种情况下matlab循环是如何工作的吗? 提前谢谢。
答案 0 :(得分:2)
for
参数是一个向量。循环迭代器ii
为循环的每次迭代获取向量的一个值。正如您所提到的,矢量可以等距1:2:100
。但它也可以是任意的,例如for ii = [4,6,1,8] ...
在您的情况下,for
参数向量部分是“等间距”向量:1:w:rd(1)-w-border
加上另一个元素rd(1)-border+1
。
答案 1 :(得分:2)
For
循环可以为一组定义的索引值执行语句:
例如,以下代码将显示集合[1,5,8,17]
中的所有元素:
for s = [1,5,8,17]
disp(s)
end
您的代码for ii=[1:w:rd(1)-w-border, rd(1)-w-border+1]
类似。
它就像一个1:w:rd(1)-w-border
集合,附加了一个元素rd(1)-w-border+1
。
就像把这个集[1,2,3,4,5,8]
写为[1:1:5, 8]
我现在希望它清楚。