¿Cómo permutar filas y columnas en una array en MATLAB?

En este artículo, discutiremos cómo encontrar la permutación de filas y columnas en una array con la ayuda de múltiples enfoques.

Método 1

En este enfoque, simplemente estamos permutando las filas y columnas de la array en el formato especificado de filas y columnas respectivamente. Para la permutación de columnas, tomamos un ejemplo de una array de 3*3 que se permuta de tal manera que su primera columna se convierte en la segunda, la segunda se convierte en la tercera y, por último, la tercera se convierte en la primera columna.

Ejemplo 1: 

Matlab

% MATLAB code for column permutation
% and specifying a 3*3 matrix
A = [1 2 3
     4 5 6
     7 8 9]
      
% Initializing a list of columns (Index)
% in which above matrix need to be
% permuted
index = [3 1 2]
 
% Getting the column permuted matrix B
B = A(:, index)

Producción: 

A =
  1   2   3
  4   5   6
  7   8   9
index =
  3   1   2
B =
  3   1   2
  6   4   5
  9   7   8

Ejemplo 2: 

Matlab

% MATLAB code for rows permutation.
% Specifying a 3*3 matrix
A = [1 2 3
     4 5 6
     7 8 9]
      
% Initializing a list of rows (Index)
% in which above matrix need to be
% permuted
index = [3 1 2]
 
% Getting the rows permuted matrix B
B = A(index, 🙂

Producción: 

A =
  1   2   3
  4   5   6
  7   8   9
index =
  3   1   2
B =
  7   8   9
  1   2   3
  4   5   6

Método 2

La función perms() devuelve una array que contiene todas las permutaciones posibles de los elementos del vector «v» especificado en orden lexicográfico inverso. Aquí, cada fila de la array devuelta contiene una permutación diferente de los elementos «n» del vector «v» especificado. La array devuelta tiene el mismo tipo de datos que el vector «v» dado y tiene n! filas y n columnas.

Sintaxis: 

perms(v)

Parámetros: Esta función acepta un parámetro que se ilustra a continuación:

  • v: Este es el vector especificado que contiene el número «n» de elementos.

Valor de retorno: Devuelve una array que contiene todas las permutaciones posibles de los elementos del vector “v” especificado en orden lexicográfico inverso. 

Ejemplo 1: 

Matlab

% MATLAB code for perms()
% Initializing a vector of some elements
vector = [1 2 3];
 
% Calling the perms() function over the
% above vector as its parameter whose
% elements are going to be permuted
P = perms(vector)

Producción: 

P =
  3   2   1
  3   1   2
  2   3   1
  2   1   3
  1   3   2
  1   2   3

Ejemplo 2: 

Matlab

% MATLAB code for perms()
% Initializing a vector of some complex numbers
vector = [1+2i 3+4i 5+6i];
 
% Calling the perms() function over the
% above vector as its parameter whose
% elements are going to be permuted
P = perms(vector)

Producción: 

P =
  5 + 6i   3 + 4i   1 + 2i
  5 + 6i   1 + 2i   3 + 4i
  3 + 4i   5 + 6i   1 + 2i
  3 + 4i   1 + 2i   5 + 6i
  1 + 2i   5 + 6i   3 + 4i
  1 + 2i   3 + 4i   5 + 6i

Método 3

La función permute() reorganiza las dimensiones de la array especificada en el orden especificado por el vector dimorder.

Sintaxis: 

permute(A, dimorder)

Parámetros: Esta función acepta dos parámetros, que se ilustran a continuación: 

  • A: Esta es la array de array especificada.
  • dimorder: este es el orden de vector especificado en el que se realiza la permutación.

Valor devuelto: Devuelve la array permutada.

Ejemplo 1: 

Matlab

% MATLAB code for permute()
% Creating a random 2*3 matrix
A = rand(2, 3)
 
% Calling the permute() function
% over the above matrix in the
% dimension order of [2 1]
B = permute(A, [2 1])

Producción: 

A =
  0.32773   0.12633   0.67752
  0.26285   0.91283   0.42994
B =
  0.32773   0.26285
  0.12633   0.91283
  0.67752   0.42994

Ejemplo 2: 

Matlab

% MATLAB code for permute ()
% Creating 2-by-3-by-2 random array matrix
A = rand(3, 3, 2)
 
% Calling the permute() function
% over the above matrix in the
% dimension order of [2 3 1]
B = permute(A, [2 3 1])

Producción: 

A =
ans(:,:,1) =
  0.53364   0.65671   0.32496
  0.82471   0.36042   0.31604
  0.82714   0.84231   0.70248
ans(:,:,2) =
  0.424538   0.498572   0.972245
  0.069400   0.799598   0.754885
  0.722046   0.807107   0.392804
B =
ans(:,:,1) =
  0.53364   0.42454
  0.65671   0.49857
  0.32496   0.97224
ans(:,:,2) =
  0.824706   0.069400
  0.360418   0.799598
  0.316038   0.754885
ans(:,:,3) =
  0.82714   0.72205
  0.84231   0.80711
  0.70248   0.39280

Publicación traducida automáticamente

Artículo escrito por Kanchan_Ray y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *