如何在MATLAB中将单元阵列中不同大小的矩阵组合成矩阵

Gio*_*ldi 1 matlab concatenation matrix cell-array

类似于如何在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]}
Run Code Online (Sandbox Code Playgroud)

我想获得类似的东西:

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
Run Code Online (Sandbox Code Playgroud)

我尝试使用cellfun和cell2mat,但我不知道如何做到这一点.谢谢.

Ika*_*ros 5

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

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

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