Bob*_*Bob 1 matlab loops for-loop
在Java中,我可以直接循环遍历数组中的元素,例如:
int[] array = [1,2,3,4];
for (int elem: array){
System.out.println(elem);
}
Run Code Online (Sandbox Code Playgroud)
而不是通过索引循环
int[] array = [1,2,3,4];
for(int i=0; i<array.length; i++){
System.out.println(array[i]);
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能在MATLAB中做同样的事情?
在Matlab中,与您的问题类似的两个选项是:
%// Loop via indices
array = [10 20 30 40];
for n = 1:numel(array)
disp(array(n));
end
%// Loop over elements directly
array = [10 20 30 40];
for elem = array
disp(elem);
end
Run Code Online (Sandbox Code Playgroud)
一些说明:
通过索引循环时,该语句for n = 1:1000 不会创建整个数组 1:1000.所以你可以安全地编写例子for n = 1:inf(然后可能break在循环中使用).
当在循环语句中证明数组时,Matlab会循环遍历列.所以举个例子
%// Loop over elements (columns) directly
array = [10 20 30 40; 50 60 70 80];
for elem = array
disp(elem);
end
Run Code Online (Sandbox Code Playgroud)
将设置elem到[10; 50],然后[20; 60]等
该数组可以是任何类型,不一定是数字(并且列规则仍然适用).例如,
%// Loop over elements (columns) directly, using a cell array
array = {'Hello', 'Hi'; 'Goodbye' 'Godspeed'};
for elem = array
disp(elem);
end
Run Code Online (Sandbox Code Playgroud)
使elem等于所述列单元阵列{'Hello'; 'Goodbye'},然后到{'Hi'; 'Godspeed'}