[英]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.