How to convert 2d matrix to 4d matrix?

13 visualizaciones (últimos 30 días)
Abdel-Rahman Ashraf
Abdel-Rahman Ashraf el 18 de Mayo de 2020
Comentada: Ameer Hamza el 18 de Mayo de 2020
If I have a 4*4 matrix like this
a=[30,31;32,33]; % a can be more than 2d array
b=[40,41;42,43]; % b can be more than 2d array
c=[50,51;52,53]; % c can be more than 2d array
d=[60,61;62,63]; % d can be more than 2d array
X=[1,2,3,a;5,6,b,8;c,10,11,12;d,14,15,16];
how to convert it to, in this case, to 4*4*2*2 where X(1,4,1,1)=30, X(1,4,1,2)=31,X(1,4,2,1)=32,X(1,4,2,2)=33, X(2,3,1,1)=40,X(2,3,1,2)=41,X(2,3,2,1)=42,X(2,3,2,2)=43 and so on?

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 18 de Mayo de 2020
Editada: Ameer Hamza el 18 de Mayo de 2020
Are you looking for something like this
a=[30,31;32,33]; % a can be more than 2d array
b=[40,41;42,43]; % b can be more than 2d array
c=[50,51;52,53]; % c can be more than 2d array
d=[60,61;62,63]; % d can be more than 2d array
X = cat(3, a, b, c, d);
Or maybe this
a=[30,31;32,33]; % a can be more than 2d array
b=[40,41;42,43]; % b can be more than 2d array
c=[50,51;52,53]; % c can be more than 2d array
d=[60,61;62,63]; % d can be more than 2d array
X(1,4,:,:) = a;
X(2,3,:,:) = b;
X(3,2,:,:) = c;
X(4,1,:,:) = d;
Result
>> size(X)
ans =
4 4 2 2
  4 comentarios
Abdel-Rahman Ashraf
Abdel-Rahman Ashraf el 18 de Mayo de 2020
Many thanks.
Ameer Hamza
Ameer Hamza el 18 de Mayo de 2020
I am glad to be of help.

Iniciar sesión para comentar.

Más respuestas (1)

Sulaymon Eshkabilov
Sulaymon Eshkabilov el 18 de Mayo de 2020
Editada: Sulaymon Eshkabilov el 18 de Mayo de 2020
It is going to be something like that:
X(:,:,:,1)=a;
X(:,:,:,2)=b;
X(:,:,:,3)=c;
X(:,:,:,4)=d;
  1 comentario
Abdel-Rahman Ashraf
Abdel-Rahman Ashraf el 18 de Mayo de 2020
Thank you for your answer. I edited your suggestion to add them to the original matrix like that
XX=[1,2,3,0;5,6,0,8;0,10,11,12;0,14,15,16];
X=repmat(XX,[1,1,2,2]);
X(1,4,:,:) = a;
X(2,3,:,:) = b;
X(3,2,:,:) = c;
X(4,1,:,:) = d;
But if I don't know the dimensions of a,b,c,d (I mean they can be 3 or more dimensions matrices) how to make it more general?

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by