How to rearrange columns in a MATRIX?
28 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Leeba Ann Chacko
am 4 Sep. 2022
Verschoben: Walter Roberson
am 5 Sep. 2022
I have a 2x4 matrix 'X' which looks like the follwing
X = 17.0600 29.6780 23.0660 29.4160
19.0280 42.3270 22.7940 43.0240
I would like the last 2 columns to come below the 1st 2 column so that it will look like this
X= 17.0600 29.6780
19.0280 42.3270
23.0660 29.4160
22.7940 43.0240
How do I go about this using he reshape function?
2 Kommentare
Dyuman Joshi
am 4 Sep. 2022
Bearbeitet: Dyuman Joshi
am 4 Sep. 2022
I don't think that is possible using reshape (alone), as you are changing the order of elements. You can use vertical concatention to get the desired result -
x=[17.0600 29.6780 23.0660 29.4160;19.0280 42.3270 22.7940 43.0240];
y=[x(:,1:2);x(:,3:4)]
Akzeptierte Antwort
Dyuman Joshi
am 4 Sep. 2022
Verschoben: Walter Roberson
am 5 Sep. 2022
x=[1 2 4 4 5 6; 3 4 6 6 7 8; 3 4 5 6 6 7;4 5 6 8 7 8];
y=[reshape(x(:,1:2:end),[],1) reshape(x(:,2:2:end),[],1)]
1 Kommentar
Weitere Antworten (2)
Stephen23
am 4 Sep. 2022
x = [1,2,4,4,5,6; 3,4,6,6,7,8; 3,4,5,6,6,7; 4,5,6,8,7,8]
y = reshape(permute(reshape(x,size(x,1),2,[]),[1,3,2]),[],2)
1 Kommentar
James Tursa
am 4 Sep. 2022
One way:
[X(:,1:2);X(:,3:4)]
2 Kommentare
James Tursa
am 4 Sep. 2022
Bearbeitet: James Tursa
am 4 Sep. 2022
To receive quality answers, it is best to describe the complete problem when first posting your question. E.g., Do you want the result to always be 2 columns? Or 1/2 the original columns? Etc.
Siehe auch
Kategorien
Mehr zu Matrices and Arrays finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!