2 variables matlab loops for-loop
在C++/C中,我们在一个循环中有多个循环变量,比如Matlab中有多个变量循环的for(int i=0; int j=0; i<5; j<5; i++; j++)任何工具吗?而且,我在循环迭代计算中非常清醒,因此它会影响速度,因为我已经在Matlab中使用了嵌套循环.
MATLAB 类支持多个循环变量,因为它支持矩阵作为循环表达式.这是如何运作的? 矩阵的各列在每次迭代开始时分配给循环变量.
示例代码:
V = [1:1:5; 2:2:10]
for iv = V,
fprintf('iv = [%d %d];\n',iv);
end
Run Code Online (Sandbox Code Playgroud)
输出:
V =
1 2 3 4 5
2 4 6 8 10
iv = [1 2];
iv = [2 4];
iv = [3 6];
iv = [4 8];
iv = [5 10];
Run Code Online (Sandbox Code Playgroud)
我们已经取得了这里有两个循环变量,iv(1)并且iv(2),其被用作循环表达矩阵的行指定.注意,数组可以是任何类型(例如字符串,单元格,结构等).
摘要
预定义循环变量的每次迭代,并将它们存储为矩阵的行.在循环内部,循环变量将包含矩阵的列.
边注
我猜这个约定是colon运算符通过水平串联而不是垂直生成数组的结果.只考虑以下情况会发生什么:
for ii = (1:3).', numel(ii), end
Run Code Online (Sandbox Code Playgroud)
您可能期望三次迭代,每次迭代都指示numel(ii)=1,但您只获得一次迭代并且循环报告:
ans =
3
Run Code Online (Sandbox Code Playgroud)
如果你期望ii成为一个标量,问题就很明显了.
术语
for loop_variable = loop_expression, statement, ..., statement end
Run Code Online (Sandbox Code Playgroud)