数组矩阵

时间:2014-08-01 15:56:26

标签: matlab

我想创建一个数组矩阵。所以,我想要一个a - by - b矩阵,其中每个元素M(i,j)实际上是一个列数组。这相当于C中的三维数组。

我在Matlab中可以看到的唯一解决方案是创建一个三维矩阵。但是,第三个维度是另一个矩阵,而不是列数组。

解决方案是什么?

2 个答案:

答案 0 :(得分:0)

Matlab中的3D矩阵可以很好地工作,你可以像这样提取矢量:

M = ones(4,5,6);  % 4x5 matrix of 6-element vectors
V = M(2,3,:)      % the vector on position (2,3)

更灵活的解决方案虽然在数据访问速度方面受到极小的损失,但却是一个单元阵列:

M = repmat({ones(6,1)}, 4, 5);  % 4x5 cell array of 6-element vectors
V = M{2,3}                      % the vector on position (2,3)

答案 1 :(得分:0)

与CST-Link一样,您可以添加squeeze()

M = randi(3, [4,5,6]);
v = squeeze(M(1,3,:))

使用单元格数组处理具有可变长度的第三维。但是如果它们都具有相同的长度,我将使用3-D矩阵(更少的内存开销,并且您可以从任何维度轻松地获取矢量)。