我是一个有用的助手,可以为您翻译文本。
我有一个问题,看起来应该有一个简单的答案,可以避免for循环。
假设我在MATLAB中定义了一个N x 4的数组:
A = [1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4; 1 2 3 4];
在这个例子中,N = 6,但它是任意的。我想将A重新排列成一个新数组B,它是形如2 x 2 x N的数组:
B(:,:,1) = [1 2; 3 4];
B(:,:,2) = [1 2; 3 4];
...
B(:,:,N) = [1 2; 3 4];
这似乎是一个简单的问题,我尝试了各种方法,例如:
B = reshape(A',2,2,N);
然而,这会导致...
B(:,:,1) = [1 3; 2 4];
B(:,:,2) = [1 3; 2 4];
...
B(:,:,N) = [1 3; 2 4];
我觉得一定有一种简单的方法可以使用"reshape","permute"和/或"transpose"的某些组合来完成此操作,但我可能错过了。欢迎任何建议。