swap columns of a matrix
39 views (last 30 days)
Show older comments
Rasmus
on 25 Feb 2014
Commented: Keerthi Krishna PARVATHANENI
on 15 Sep 2021
Hello guys/girls
How do i swap columns??
I have this
k_minus =
-46 -43 -26 -14 7 19 11 32 39 45 45
0 -4 -7 -7 -44 -44 -7 -7 -15 -15 0
and I want the columns to be in opposite order - How do I do this? and can do this in one go?
1 Comment
Keerthi Krishna PARVATHANENI
on 15 Sep 2021
Easy way is to swap the coloums based on the positon
For example:
A=[10 20 30;
40 50 60];
swap the coloum 1 to 2 can be done by
A(:,[2 1 3])
ans =
20 10 30
50 40 60
Exact approach can be adopted ot swap rows
A([2 1],:)
ans =
40 50 60
10 20 30
I think, this can be easy way with minium code.
Enjoy :)
Accepted Answer
More Answers (2)
Mischa Kim
on 25 Feb 2014
Edited: Mischa Kim
on 25 Feb 2014
Use
k_minus_rev = k_minus(:, [length(k_minus(1,:)):-1:1])
4 Comments
Jos (10584)
on 25 Feb 2014
You do not need the length statement by using the keyword END:
MyMatrix_withReversedColumns = MyMatrix(:,end:-1:1)
but I do suggest you stick to FLIPLR. It is the same, but much easier to read!
kk
on 2 Apr 2019
Thank you for this answer! It has helped me "merge" two matrices, i.e. creating a matrix consisting of the first column of matrix A, first column of matrix B, second column of matrix A, second column of matrix B, etc.
rishabh gupta
on 12 Jan 2018
you can also use: k_minus_rev = k_minus(:, [length(k_minus):-1:1])
2 Comments
Stephen23
on 12 Jan 2018
Edited: Stephen23
on 12 Jan 2018
The square brackets are totally superfluous, and using end is simpler than using length (of course length should be avoided generally because its output changes depending on the input array size: better to use numel or size with a specific dimension).
So a better (simpler, clearer, less buggy) is exactly as Jos already gave four years ago:
k_minus(:,end:-1:1)
See Also
Categories
Find more on Logical 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!