【发布时间】:2014-03-22 06:58:45
【问题描述】:
我想将几个二维数据组合成 3 维数据。我有 124 个 2-D 数据 (151 x 151) 现在我想将所有这些数据组合成 3 维,这样它就会像这样 124 x 151 x 151。2-D 数据包含 NaN 元素。
【问题讨论】:
-
你如何或在哪里拥有这几个二维数据?
标签: arrays matlab matrix concatenation
我想将几个二维数据组合成 3 维数据。我有 124 个 2-D 数据 (151 x 151) 现在我想将所有这些数据组合成 3 维,这样它就会像这样 124 x 151 x 151。2-D 数据包含 NaN 元素。
【问题讨论】:
标签: arrays matlab matrix concatenation
要将多个 2D 数组连接成一个 3D 数组,请使用广义连接函数 cat,指定维度 3。
例如,给定大小相等的二维数组A1,A2,...:
M = cat(3,A1,A2,...)
假设您将k 二维数组组织在一个单元格数组C 中,其中每个单元格都是一个二维矩阵,大小均为M-by-N:
M = cat(3,C{:});
那么M 的大小将是M-by-N-by-k。现在,如果您想从M-by-N-by-k 转到k-by-M-by-N,请使用permute 或shiftdim:
Mn = permute(M,[3 1 2]); % my preference
Mn = shiftdim(M,2);
注意:cat 的替代品是cell2mat:
M = cell2mat(reshape(C,1,1,[]))
【讨论】: