如何在Matlab中切割一个三维矩阵并获得一个数组

4
考虑在MATLAB中拥有一个3D矩阵,其中:
A(:,:,1) = [1 2 3;4 5 6;7 8 9];
A(:,:,2) = [11 22 33;44 55 66;77 88 99];
A(:,:,3) = [111 222 333;444 555 666;777 888 999];

好的,当我要求

A(1:end,1,:)

我得到了三个不同的答案:

A(1:end,1,1) = [1 2 3];

A(1:end,1,2) = [11 22 33];

A(1:end,1,3) = [111 222 333];

我希望能够一次性地完成此操作,最好不要使用循环等方法:

[1 2 3;11 22 33;111 222 333]

如何获取它?

我想要一个新的矩阵,而不是一系列向量。

谢谢。

1个回答

7
squeeze(A(1,:,:))'

程序正常工作。我认为如果我更聪明或者愿意花更多时间,我就可以在不使用转置的情况下完成它,但这应该可以指引你朝着正确的方向前进。


2
一直在寻找解决这个问题的方法,不确定为什么squeeze()没有得到更多的关注。 - Andrew C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接