i具有由以下维度组成的元素的1x8 Cell Array(A)
。
10x13x2 double 10x13x2 double 10x13x2 double 10x13x2 double 10x13x2 double 10x13x2 double 10x13x2 double 10x13x2 double
在 A{1,1}....A{1,8}
中,我有
val(:,:,1) = 10x13 matrix(130 values)
val(:,:,2) = Another 10x13 Matrix(130 values)
现在,我想水平串联val(:,:,1) and val(:,:,2)
,以便由于每个单元格中的串联而获得了260 values
的总计。我需要像 val(:,:,1) is M and val(:,:2) is V
一样加入它。因此,我需要像[M1 V1]..[MN VN]
,我希望为单元格数组中的所有8个元素完成此操作。
所以,最后我必须获得1x8单元格数组的值,如下
MxNX1 MxNX1 MxNX1 MxNX1 MxNX1 MxNX1 MxNx1 MxNX1
其中 MXN = 260
,
所以最后我应该得到一个1x8
单元格数组,我希望每个单元格的尺寸为 260x8
。
请建议如何做到这一点,如果涉及重塑和循环,请建议我如何做?
(:,:)
的3D阵列符号水平串联3D切片。使用cellfun
或循环将其应用于A
的所有单元。
A = cellfun(@(x) {x(:,:)}, A);
或者,如果上述版本不太清楚,则可以使用reshape
。
A = cellfun(@(x) {reshape(x,10,[])}, A);