在 MATLAB 中嵌套数组

cat*_*tan 0 arrays matlab matrix

arr=[   [],[],[]  ];

for i=1:3
     arr(i)=[i,i+1];
end
Run Code Online (Sandbox Code Playgroud)

预期输出:arr=[[1,2],[2,3],[3,4]];

我试图将多个数组放入一个数组中,我已经尝试了上面的代码,但它不起作用

如何嵌套数组?

Adr*_*aan 5

你正在尝试的是非常Pythonic的,在列表中嵌套列表。这在 MATLAB 中不起作用。基本上有两个简单的选择:多维数组或带有数组的元胞数组。

arr = zeros(3,2);  % initialise empty array
arr_cell = cell(3,1);  % initialise cell
for ii = 1:3
    arr(ii,:) = [ii, ii+1];  % store output as columns
    arr_cell{ii} = [ii, ii+1];  % store cells
end

arr =

     1     2
     2     3
     3     4

celldisp(arr_cell)
 
arr_cell{1} =
     1     2
arr_cell{2} =
     2     3
arr_cell{3} =
     3     4
Run Code Online (Sandbox Code Playgroud)

单元格可以采用各种大小(甚至类型)的参数,而多维矩阵每行必须具有相同的列数。这使得元胞数组更加灵活,但数值数组速度更快,并且具有更多可用的数值函数。


一个小旁注,我建议不要i在 MATLAB 中用作变量名,因为它是一个内置函数