3d矩阵内联初始化

时间:2016-01-11 09:47:56

标签: matlab multidimensional-array 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];

1 个答案:

答案 0 :(得分:2)

使用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])