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