Возьмите 4-мерную матрицу A
с s1=size(A,1)
, s2=size(A,2)
, s3=size(A,3)
, s4=size(A,4)
.
Рассмотрим
B=reshape(A, s1*s2*s3*s4,1)
Например,
s1=2;
s2=3;
s3=2;
s4=4;
A(:,:,1,1)=[1 2 3; 4 5 6];
A(:,:,1,2)=[7 8 9; 10 11 12];
A(:,:,1,3)=[13 14 15; 16 17 18];
A(:,:,1,4)=[19 20 21; 22 23 24];
A(:,:,2,1)=[25 26 27; 28 29 30];
A(:,:,2,2)=[31 32 33; 34 35 36];
A(:,:,2,3)=[37 38 39; 40 41 42];
A(:,:,2,4)=[43 44 45; 46 47 48];
B=reshape(A, s1*s2*s3*s4,1);
%B=[1;4;2;5;3;6;25;28;26;29;27;30;7;10;8;11;9;12;...];
Заданные координаты (i,j,h,k)
, я хотел бы, чтобы ваша помощь написала функцию, которая дает мне позицию A(i,j,h,k)
дюйм B
.
Я знаю, как это сделать, когда A
- трехмерная матрица. В этом случае
position_in_B= i + ( j-1 + (h-1)*s2 ) * s1;
Как я могу распространить этот результат на 4-мерные матрицы?