有没有办法在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];
答案 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])