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])
有什么方法可以在 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])