Многомерный массив: разделить и собрать обратно - PullRequest
1 голос
/ 19 сентября 2019

Я пытаюсь перевернуть трехмерный массив «вверх ногами» следующим образом:

Я пробовал функцию inverse, но если мы посмотрим на обратноеоперация в математическом плане, это дает нам другой результат.Мне нужно включить без изменения данных в массиве.Как это сделать?

Чтобы разделить трехмерный массив (A x B x C) на под-массив A (2d, B x C), я использовал squeeze: k=squeeze(array(n,:,:)).Теперь у меня есть двумерный массив размером B x C.Как собрать его обратно (в трехмерный массив)?

enter image description here

1 Ответ

1 голос
/ 19 сентября 2019

Вы можете использовать permute(), чтобы изменить порядок измерений, который можно использовать в качестве многомерной транспонирования.

В этом случае перевод двумерных матриц в трехмерную является простой операцией индексации.,Подробнее об индексировании здесь .

A = rand(10,10,10);
B = permute(A, [ 3 2 1 ]);  % Permute he order of dimensions

mat1 = rand(10,10);
mat2 = rand(10,10);
mat_both(:,:,2) = mat2; % Stack 2D matrices along the third dimension
mat_both(:,:,1) = mat1;

mat_both = cat(3,mat1, mat2);  % Stacks along the third dimension in a faster way
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...