How can i reorder NxM matrix into a 1D array
1 view (last 30 days)
Show older comments
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];
Accepted Answer
Star Strider
on 12 Jun 2018
b = reshape(a([3 2 1],:)', 1, [])
b =
7 8 9 4 5 6 1 2 3
1 Comment
Stephen23
on 12 Jun 2018
Or generalized for any number of rows:
reshape(a(end:-1:1,:).', 1, [])
More Answers (1)
Alfonso
on 12 Jun 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,:)]
0 Comments
See Also
Categories
Find more on Resizing and Reshaping Matrices in Help Center and File Exchange
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!