将多个二维数据转换为三维数据

时间:2014-03-22 06:58:46

标签: arrays matlab matrix concatenation

我想将几个二维数据组合成三维数据。我有124个2-D数据(151 x 151)现在我想将所有这些数据组合成3维,这样它就像这个124 x 151 x 151.二维数据包含NaN元素。

1 个答案:

答案 0 :(得分:1)

要将多个2D数组连接成3D数组,请使用通用连接函数cat,指定维度3.

例如,给定大小的二维数组A1,A2,...

M = cat(3,A1,A2,...)

假设您在单元格数组k中组织了C个2D数组,其中每个单元格都是2D矩阵,大小均为M-by-N

M = cat(3,C{:});

然后M的大小为M-by-N-by-k。现在,如果您想从M-by-N-by-k转到k-by-M-by-N,请使用permuteshiftdim

Mn = permute(M,[3 1 2]); % my preference
Mn = shiftdim(M,2);

注意:cat的替代方法是cell2mat

M = cell2mat(reshape(C,1,1,[]))