0

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

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

4

2 回答 2

2

参数是for一个向量。循环迭代器ii为循环的每次迭代取一个向量值。正如您所提到的,向量可以是等距的,例如1:2:100. 但它也可以是任意的,例如for ii = [4,6,1,8] ....
在您的情况下,for参数向量部分是“等距”向量:1:w:rd(1)-w-border加上另一个元素rd(1)-border+1

于 2013-05-05T18:23:05.613 回答
2

Formatlab 中的循环可以为定义的一组索引值执行语句:例如,以下代码将显示集合中的所有元素[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] 我希望它现在清楚了。

于 2013-05-05T18:32:39.403 回答