3d 矩阵内联初始化

3d matrix inline initialization

有什么方法可以在 MATLAB 中用一行内联初始化 3D 矩阵吗?因此,无需使用 for 循环和预初始化,例如通过 zero(a,b,c)。据我所知,我们只能做 2D,如:

matr=[1,2;3,4]

其中 ,; 表示两个维度。有没有我不知道的三维定界符?我知道可以通过

进行多行初始化
matr(:,:,1) = [1 2 3; 9 8 7; 4 6 5];
matr(:,:,2) = [0 3 2; 8 8 4; 5 3 5];
matr(:,:,3) = [6 4 7; 6 8 5; 5 4 3];

使用cat沿着第三个维度连接:

cat(3, [1 2 3; 9 8 7; 4 6 5], [0 3 2; 8 8 4; 5 3 5], [6 4 7; 6 8 5; 5 4 3])

您也可以使用 reshape 实现此目的:

reshape([[1 2 3; 9 8 7; 4 6 5], [0 3 2; 8 8 4; 5 3 5], [6 4 7; 6 8 5; 5 4 3]], [3,3,3])