I have a matrix
[1 6;2 7;3 8;4 9;5 10]
and i want to change the order into [1 2;3 4; 5 6;7 8;9 10]
any idea how to do this? i have tried reshape and transpose but didn't work well. thanks

Réponses (2)

Matt J
Matt J le 30 Juil 2015
Modifié(e) : Matt J le 30 Juil 2015

0 votes

A=[1 6;2 7;3 8;4 9;5 10]
Anew=reshape(A,size(A,2),[]).'
Sebastian Castro
Sebastian Castro le 30 Juil 2015
Modifié(e) : Sebastian Castro le 30 Juil 2015

0 votes

You were close! The missing part was reshaping the matrix to its "flipped size" prior to transforming it.
origMatrix = [1 6;2 7;3 8;4 9;5 10];
origSize = size(origMatrix);
flippedSize = fliplr(origSize);
reshapedMatrix = reshape(origMatrix,flippedSize);
finalMatrix = transpose(reshapedMatrix);
... or, the awfully condensed version:
origMatrix = [1 6;2 7;3 8;4 9;5 10];
finalMatrix = reshape(origMatrix,fliplr(size(origMatrix)))';
- Sebastian

Catégories

En savoir plus sur Sparse Matrices dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by