How to reshape a matrix in a specific way?

4 visualizaciones (últimos 30 días)
Ciaran Green
Ciaran Green el 8 de Feb. de 2018
Comentada: Ciaran Green el 8 de Feb. de 2018
If I have a matrix (A) that is 10x4, how would I reshape this matrix to be a new 5x8 matrix (B) so that the first two rows of A are concatenated to be the first row of B, the 3rd and 4th row of A were the second row of B etc.
Thanks in advance for your help

Respuesta aceptada

Stephen23
Stephen23 el 8 de Feb. de 2018
Editada: Stephen23 el 8 de Feb. de 2018
Just use reshape and transpose (where 8 is the required number of columns):
>> A = rand(10,4); % fake data
>> B = reshape(A.',8,[]).';
and checking:
>> A(1:2,:)
ans =
0.42279 0.17374 0.11111 0.86420
0.25314 0.46765 0.14823 0.10467
>> B(1,:)
ans =
0.42279 0.17374 0.11111 0.86420 0.25314 0.46765 0.14823 0.10467
In your case use (where 25536*72 is the required number of columns):
B = reshape(A.',25536*72,[]).';
  1 comentario
Ciaran Green
Ciaran Green el 8 de Feb. de 2018
Fantastic, makes perfect sense - thank you for your help.

Iniciar sesión para comentar.

Más respuestas (1)

Fangjun Jiang
Fangjun Jiang el 8 de Feb. de 2018
Editada: Fangjun Jiang el 8 de Feb. de 2018
A=reshape(1:40,10,4);
B=[A(1:2:10,:) A(2:2:10,:)]
  3 comentarios
Stephen23
Stephen23 el 8 de Feb. de 2018
Editada: Stephen23 el 8 de Feb. de 2018
Fangjun Jiang used the first line to define some fake data: it defines a matrix A with size 10x4, just like you specified in your question but did not provide us with. There is nothing special about this matrix (it contains the values 1 to 40), and you certainly don't need this in your code as you apparently already have matrix A.
Ciaran Green
Ciaran Green el 8 de Feb. de 2018
Oh, oops, makes sense - thank you for clarification.

Iniciar sesión para comentar.

Categorías

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

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by