2013-05-05 222 views
0

我不明白这段代码的循环在matlab中,我知道循环在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

对我来说,它看起来像一个标准的'MATLAB'环:我建议你要了解方括号'[]'内会发生什么。其余的@Shai给了你一些有价值的提示。 – fpe 2013-05-05 18:26:56

回答

2

For环在MATLAB可以执行规定的一组索引值的语句: 例如,下面的代码将在该组[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] 我希望它现在清楚。

2

for参数是一个矢量。循环迭代器ii为循环的每次迭代获取矢量的一个值。如您所述,矢量可以像1:2:100一样间隔。但它也可以是任意的,例如for ii = [4,6,1,8] ...
在你案中for参数向量被部分地“等间隔”载体:1:w:rd(1)-w-border加另一个元件rd(1)-border+1