Matlab,如何迭代多维数组

Matlab,如何迭代多维数组,matlab,Matlab,我正在尝试这个代码 arr = [[400, 200], [100, 50]] for a = arr a(2) % Should display the 2nd element of the sub-array end 但我得到: Index exceeds the number of array elements (1) 有什么想法吗?解决方案是以不同的方式定义arr,即: arr = [400 200; 100 50]; 我知道错误出现的原因,但我不知道您想做什么

我正在尝试这个代码

arr = [[400, 200], [100, 50]]

for a = arr

    a(2) % Should display the 2nd element of the sub-array   

end
但我得到:

Index exceeds the number of array elements (1)

有什么想法吗?

解决方案是以不同的方式定义
arr
,即:

arr = [400 200; 100 50];

我知道错误出现的原因,但我不知道您想做什么。要显示
a(2)
,不需要循环。只要
a(:,2)
。但是,你在哪里读到了如何编写Matlabfor循环?这是不正确的。子数组的数量在我的代码中不是固定的,这就是我迭代整个数组的原因。对于i=1:length(arr),您可以将循环重写为
,然后是
a=arr(i)
。正如您所看到的,
a
只是
arr
的一个元素,所以它的大小是1x1。@mricdev是的,我建议的解决方案适用于任何数量的行。我想您可能把Matlab语言与其他语言混淆了(我想是Python吧?)
[[400,200],[100,50]
仅水平连接两个子数组并返回单个数组
[400,200,100,50]
。你最好使用单元格
arr={[400200],[10050]}