[英]Using vector as range in for-loop In Matlab
我想知道在Matlab中使用矢量作为for-loop范围的规则是什么?
例如,
range = [0.1:0.01:2]'; % wrong
range = [0.1:0.01:2]; % correct
for i = range
i
end
range
是列向量,它将无法工作,而如果range
是行向量,它会? i = range
解释为i
取每个range
值,或者i
被赋予向量range
? 谢谢〜
更一般地, range
可以是矩阵,并且循环变量在其列上循环。
range = rand(3,3);
for col = range
col
end
col =
0.86341
0.11625
0.20319
col =
0.59721
0.098357
0.8356
col =
0.89578
0.46217
0.93585
因此,如果range
是行向量,它将遍历其值。 但是,如果range
是列向量,它将作为其值循环遍历该列。
来自http://www.mathworks.co.uk/help/techdoc/ref/for.html :
for index = values program statements : end
...
values
具有以下形式之一:
valArray
在每次迭代时从数组
valArray
后续列创建列向量索引。 例如,在第一次迭代时,index = valArray(:,1)
......
正如您所发现的,如果您进行了实验,一旦您完成了诸如range = [0.1:0.01:2]
之类的赋值,那么名为range
的变量就是包含该范围内值的行向量。 你的循环可以正常工作。 就像它开始时一样
for i = [0.1 0.11 0.12 ...]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.