У меня есть вопрос, который, кажется, должен иметь простой ответ, которого можно избежать для циклов.
Предположим, у меня есть массив N x 4, определенный в MATLAB:
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];
Я чувствую, что должен быть простой способ сделать это в одной строке, используя некоторую комбинацию "перестройки", "перестановки" и / или "транспонирования", которую я пропускаю. Любые предложения приветствуются.