How can i reorder NxM matrix into a 1D array

1 visualización (últimos 30 días)
Matthew
Matthew el 12 de Jun. de 2018
Comentada: Stephen23 el 12 de Jun. de 2018
I am looking to take a sample matrix below. The matrix will be large and looking for fast and non looping solution. Thank you.
a=[1 2 3;4 5 6;7 8 9];
reshape it into:
b=[7 8 9 4 5 6 1 2 3];
  1 comentario
Matthew
Matthew el 12 de Jun. de 2018
No the matrix is not always 3 rows. It will likely be much more in both rows and columns.

Iniciar sesión para comentar.

Respuesta aceptada

Star Strider
Star Strider el 12 de Jun. de 2018
Using the reshape (link) function:
b = reshape(a([3 2 1],:)', 1, [])
b =
7 8 9 4 5 6 1 2 3
  1 comentario
Stephen23
Stephen23 el 12 de Jun. de 2018
Or generalized for any number of rows:
reshape(a(end:-1:1,:).', 1, [])

Iniciar sesión para comentar.

Más respuestas (1)

Alfonso
Alfonso el 12 de Jun. de 2018
Without looping you can do:
b = [a(end,:), a(end-1,:), a(end-2,:)]; % 1D array
b =
7 8 9 4 5 6 1 2 3
You can repeat the iterations as many rows you have: [a(end-1,:), ... ,a(end-50,:)]

Categorías

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

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by