How do i do Matrix reordering (cutting into blocks)?
3 views (last 30 days)
Show older comments
Say i have a matrix
A=[1 5 9 13 17 21.....
2 6 10 14 18 22......
3 7 11 15 19 23
4 8 12 16 20 24 .......]
And want to bring that into this shape
A_=[1 5 9 13
2 6 10 14
3 7 11 15
4 8 12 16
17 21 25 29
18 22 26 30
.....................]
Essentially cutting the above matrix into 4*4 and then continuing to the right and bring it down in to the new matrix.How do i do this?thank you
0 Comments
Accepted Answer
James Tursa
on 8 May 2019
Edited: James Tursa
on 8 May 2019
It's not exactly clear what the actual size of your matrix is (maybe you could clarify), but for what you have posted maybe this is what you want:
result = [A(:,1:4);A(:,5:8)];
EDIT:
Based on your comment below, it would be simpler to reshape the cell array first before you use cell2mat. E.g.,
A = [1 1 0 0 ; 1 1 1 0 ; 0 1 2 0; 1 0 0 1];
Q = cell2mat(arrayfun(@(i) A^i, (1:3)', 'Uni', false)); % transpose the 1:3
2 Comments
More Answers (0)
See Also
Categories
Find more on Creating and Concatenating Matrices in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!