Предположим, у меня есть матрица A
в Matlab размером MxNxKxP
. Предположим, я преобразую A
в вектор-столбец B
, используя reshape
. Мне нужен код, который, учитывая координаты (i,j,h,p)
-го элемента в A
, дает мне координату k
того же элемента в B
. Не могли бы вы помочь мне сделать это?
Этот код делает это для трехмерных матриц, но я не знаю, как обобщить его до 4d.
Позвольте мне объяснить лучше на примере.
clear all
A(:,:,1,1)=[1 2 3; 4 5 6];
A(:,:,2,1)=[7 8 9; 10 11 12];
A(:,:,1,2)=[13 14 15; 16 17 18];
A(:,:,2,2)=[19 20 21; 22 23 24];
B=reshape(A,[2*3*2*2,1]);
Предположим, changecoord(i,j,h,p)
- это функция, которая определяет положение
A(i,j,h,p)
в B
Затем этот алгоритм должен делиться
%changecoord(1,1,1,1)=1
%changecoord(2,1,1,1)=2
%changecoord(1,1,2,2)=19
%changecoord(1,2,2,2)=21
%etc.