matlab - 如何将元胞数组中不同大小的矩阵组合成MATLAB中的矩阵

标签 matlab matrix concatenation cell-array

类似于How to combine vectors of different length in a cell array into matrix in MATLAB我想将存储在单元格数组中的具有不同维度的矩阵组合成一个具有零而不是空格的矩阵。具体来说,我有一个元胞数组 {1,3},它具有 3 个大小为 (3,3) (4,3) (4,3) 的矩阵:

A={[1 2 3; 4 5 6; 7 8 9]  [1 2 3; 4 5 6; 7 8 9; 9 9 9]  [1 2 3; 4 5 6; 7 8 9; 4 4 4]}

我想获得类似的东西:

B =

 1     2     3     1     2     3     1     2     3
 4     5     6     4     5     6     4     5     6
 7     8     9     7     8     9     7     8     9
 0     0     0     9     9     9     4     4     4

我尝试使用 cellfun 和 cell2mat,但我不知道该怎么做。谢谢。

最佳答案

即使其他答案很好,我也想使用 cellfun 提交我的答案。

l = max(cellfun(@(x) length(x),A))

B = cell2mat(cellfun(@(x) [x;zeros(l-length(x),3)], A, 'UniformOutput', 0));

关于matlab - 如何将元胞数组中不同大小的矩阵组合成MATLAB中的矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31269246/

相关文章:

c++ - 段错误(核心转储 139)

matlab - 转移和发射矩阵隐马尔可夫模型 MATLAB 的初步猜测?

r - 使用回收创建矩阵

C将字符串保存到二维数组

mysql - 如何将不同表中的两个字段添加到一起SQL

c++ - 连接 boost::array 和 std::string

mysql - 我需要在 mysql 中连接两个数字

matlab - 多个数据集上的 PCA(主成分分析)

matlab - Matlab 中另一个结构内结构的大小(R2010a 64 位 linux)

matlab - 通过单击按钮关闭 uialert 图