在 Matlab 中将 2D 矩阵组合成 3D 矩阵

Combine 2D matrices to form 3D one in Matlab

我有 3 个 20x2 double 数组 ABC。我想将它们组合成一个 3d 数组 D 以便 D(:,:,1) 将 return AD(:,:,2) 将 return BD(:,:,3) 将 return C

像这样?

A = 1*ones(20,2);
B = 2*ones(20,2);
C = 3*ones(20,2);

D = zeros(20,2,3);  % Preallocate the D Matrix
D(:,:,1) = A;       
D(:,:,2) = B;
D(:,:,3) = C;

D(1,1,1)  % prints 1
D(1,1,2)  % prints 2
D(1,1,3)  % prints 3

使用cat沿三维连接可能是优雅的方式-

D = cat(3,A,B,C)

此处,第一个输入参数 3 指定执行串联的维度。