Matlab:2d阵列,行长不同

时间:2014-03-17 17:11:28

标签: matlab jagged-arrays

在Matlab中,我想创建一个二维数组。但是,我无法创建矩阵,因为行的长度都不同。

我是Matlab的新手,我通常会在C ++中通过创建指针数组来完成此操作,每个指针都指向自己的数组。

我应该如何在Matlab中执行此操作?感谢。

3 个答案:

答案 0 :(得分:9)

您可以使用cell arrays,其中包含不同类型和大小的数据。

像这样:

data = {[1]; [2,2]; [3,3,3]};

查看here了解更多示例。

答案 1 :(得分:4)

如其他人所述,使用单元格ararys。列出一些代码和注释来解释它 -

%%// Create a cell array to store data
Arr = {[1 3 4 6 8]; 
       [1 8 3]; 
       [4 6 3 2];
       [6 3 6 2 6 8]}

%%// Access element (3,4)
element = Arr{3}(4)

输出

Arr = 

    [1x5 double]
    [1x3 double]
    [1x4 double]
    [1x6 double]


element =

     2

答案 2 :(得分:3)

您可以使用cell array

C = {[1,2,3];
     [1,2,3,4,5];
     [1,2]};

或使用NaN或0或Inf等填充

N = [1, 2, 3,   NaN, NaN;
     1, 2, 3,   4,   5;
     1, 2, NaN, NaN, NaN]

这实际上取决于您下次对数据采取的措施