Concatenate vector in a 3d matrix

3 visualizaciones (últimos 30 días)
Alessandro Masullo
Alessandro Masullo el 13 de Abr. de 2012
Hi. I have these vectors: a = [11 12 13 14]; b = [21 22 23 24]; c = [31 32 33 34]; d = [41 42 43 44];
I want to concatenate them in a 2x2x4 matrix: M(:,:,1) = [11 21; 31 41]; M(:,:,2)= [12 22; 32 42]; and so on.
How can I do that?

Respuesta aceptada

James Tursa
James Tursa el 13 de Abr. de 2012
For your exact problem:
M = reshape([a;c;b;d],2,2,4);
Then generalize as appropriate. E.g., if a,b,c,d are not row vectors to start with,
M = reshape([a(:)';c(:)';b(:)';d(:)'],2,2,4);
etc.
  4 comentarios
Alessandro Masullo
Alessandro Masullo el 13 de Abr. de 2012
I would like to avoid cycles... :)
James Tursa
James Tursa el 13 de Abr. de 2012
MtimesV = mtimesx(M,V,'speed');
You can find mtimesx on the FEX here:
http://www.mathworks.com/matlabcentral/fileexchange/25977-mtimesx-fast-matrix-multiply-with-multi-dimensional-support

Iniciar sesión para comentar.

Más respuestas (0)

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