如何水平连接单元格数组的每个单元格中存在的矩阵?

How to horizontally concatenate matrices present inside each cell of a cell array?

我有一个 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);