【问题标题】:convert several 2 dimensional data into 3 dimensional将几个 2 维数据转换为 3 维
【发布时间】: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


【解决方案1】:

要将多个 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,请使用permuteshiftdim

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

注意:cat 的替代品是cell2mat

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

【讨论】:

  • 如何将 k 个 2D 组织成一个单元阵列,C?
  • 你现在如何拥有二维矩阵?
  • 抱歉回复晚了,我是从波形模型中获取数据的。该模型产生这种排列。因此,为了让我进行分析,我需要它们在 3 维中。
猜你喜欢
  • 2014-11-02
  • 1970-01-01
  • 2019-06-07
  • 1970-01-01
  • 2013-08-03
  • 2021-05-13
  • 2012-06-22
  • 2021-09-18
  • 1970-01-01
相关资源
最近更新 更多