swap columns of a matrix

78 visualizaciones (últimos 30 días)
Rasmus
Rasmus el 25 de Feb. de 2014
Comentada: Keerthi Krishna PARVATHANENI el 15 de Sept. de 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 comentario
Keerthi Krishna PARVATHANENI
Keerthi Krishna PARVATHANENI el 15 de Sept. de 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 :)

Iniciar sesión para comentar.

Respuesta aceptada

Thomas
Thomas el 25 de Feb. de 2014
Editada: Thomas el 25 de Feb. de 2014
You could also use
out= fliplr(k_minus)
  1 comentario
Rasmus
Rasmus el 25 de Feb. de 2014
That is actually easier! :)

Iniciar sesión para comentar.

Más respuestas (2)

Mischa Kim
Mischa Kim el 25 de Feb. de 2014
Editada: Mischa Kim el 25 de Feb. de 2014
Use
k_minus_rev = k_minus(:, [length(k_minus(1,:)):-1:1])
  4 comentarios
Jos (10584)
Jos (10584) el 25 de Feb. de 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
kk el 2 de Abr. de 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.

Iniciar sesión para comentar.


rishabh gupta
rishabh gupta el 12 de En. de 2018
you can also use: k_minus_rev = k_minus(:, [length(k_minus):-1:1])
  2 comentarios
Stephen23
Stephen23 el 12 de En. de 2018
Editada: Stephen23 el 12 de En. de 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)
Helen Joan
Helen Joan el 30 de Abr. de 2019
is it possible to do this with a loop?

Iniciar sesión para comentar.

Categorías

Más información sobre Creating and Concatenating Matrices en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by