在Matlab中,我想创建一个二维数组。然而,我无法创建矩阵,因为行的长度都不同。
我是Matlab的新手,我通常会在C++中通过创建指针数组来完成这个任务,每个指针都指向自己的数组。
在Matlab中我应该怎么做呢?谢谢。
我是Matlab的新手,我通常会在C++中通过创建指针数组来完成这个任务,每个指针都指向自己的数组。
在Matlab中我应该怎么做呢?谢谢。
您可以使用单元数组:
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]
这真的取决于您接下来将如何处理数据
像其他人提到的那样使用单元格数组。以下是一些代码和注释来解释它 -
%%// 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
cell2mat
函数。你可以直接使用Arr{row_id}
或者Arr{row_id}(col_id)
来访问它。 - Andrew Janke