How to rearrange columns in a MATRIX?

23 views (last 30 days)
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 Comments
Leeba Ann Chacko
Leeba Ann Chacko on 4 Sep 2022
I see. The problem is that in this example, I have only 4 columns but I have an array with several martrices that have 2 rows but different column numbers. However, for all of them, I want to rearrange the matrix the way I did in the example above.
ex. 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]
i.e
1 2 4 4 5 6
3 4 6 6 7 8
3 4 5 6 6 7
4 5 6 8 7 8
rearranged to
1 2
3 4
3 4
4 5
4 4
6 6
5 6
6 8
5 6
7 8
6 7
7 8
I want to write a for loop to automate this for all the matrices with different column numbers. How do I write the code without specifically indicating the column numbers like you did in your solution?

Sign in to comment.

Accepted Answer

Dyuman Joshi
Dyuman Joshi on 4 Sep 2022
Moved: Walter Roberson on 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)]
y = 12×2
1 2 3 4 3 4 4 5 4 4 6 6 5 6 6 8 5 6 7 8
  1 Comment
Leeba Ann Chacko
Leeba Ann Chacko on 4 Sep 2022
Moved: Walter Roberson on 5 Sep 2022
This works perfectly, thank you!

Sign in to comment.

More Answers (2)

Stephen23
Stephen23 on 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]
x = 4×6
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)
y = 12×2
1 2 3 4 3 4 4 5 4 4 6 6 5 6 6 8 5 6 7 8
  1 Comment
Walter Roberson
Walter Roberson on 4 Sep 2022
Yes, permute() is the way to go here.

Sign in to comment.


James Tursa
James Tursa on 4 Sep 2022
One way:
[X(:,1:2);X(:,3:4)]
  2 Comments
James Tursa
James Tursa on 4 Sep 2022
Edited: James Tursa on 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.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!

Translated by