复杂的matlab for matrix with matrix

时间:2013-05-05 18:14:46

标签: matlab loops for-loop matrix

我不理解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;

wborder是作为参数传递的整数,rd是图像/矩阵的大小(rd = size(image);

有人可以解释一下这种情况下matlab循环是如何工作的吗? 提前谢谢。

2 个答案:

答案 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)

matlab中的

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] 我现在希望它清楚。