How to rearrange columns in a MATRIX?
28 次查看(过去 30 天)
显示 更早的评论
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 个评论
Dyuman Joshi
2022-9-4
编辑:Dyuman Joshi
2022-9-4
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)]
采纳的回答
Dyuman Joshi
2022-9-4
移动:Walter Roberson
2022-9-5
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)]
更多回答(2 个)
Stephen23
2022-9-4
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)
James Tursa
2022-9-4
One way:
[X(:,1:2);X(:,3:4)]
2 个评论
James Tursa
2022-9-4
编辑:James Tursa
2022-9-4
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.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Matrices and Arrays 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!