¿Cómo se pueden barajar aleatoriamente las filas en MATLAB Matrix?

En este artículo, vamos a discutir la «reorganización aleatoria de filas en una Array» que se puede hacer usando la función size() y randperm()

Funciones utilizadas

1) size(): La función size() se utiliza para devolver los tamaños de cada dimensión de la array especificada «X» o el tamaño de la array especificada «X».

Sintaxis:

size(X)
[m,n] = size(X)

size(X,dim)
[d1,d2,d3,...,dn] = size(X)

Aquí,

size(X) devuelve los tamaños de cada dimensión de la array especificada «X» en un vector d con elementos ndims(X).

[m,n] = size(X) devuelve el tamaño de la array especificada «X» en las variables separadas m y n.

size(X,dim) devuelve el tamaño de la dimensión de «X» especificada por escalar dim.

[d1,d2,d3,…,dn] = size(X) devuelve los tamaños de las primeras n dimensiones de la array especificada «X» en variables separadas.

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

  • X: Es la array o array o dimensión especificada.
  • dim: Es el valor escalar para la dimensión especificada “X”

2) randperm(): La función randperm() se utiliza para la permutación aleatoria de números enteros.

Sintaxis:

randperm(n)
randperm(n,k)

Aquí,

randperm(n) devuelve un vector de fila que contiene una permutación aleatoria de los números enteros de «1» a «n» sin ninguna repetición.

randperm(n,k) devuelve un vector de fila que contiene un número «k» de enteros únicos que se seleccionan aleatoriamente de 1 a n.

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

  • n: Este es el número especificado hasta el cual se generará un número aleatorio desde «1» sin ninguna repetición.
  • k: Es el número de enteros únicos que se seleccionan aleatoriamente de 1 a n.

Los siguientes ejemplos son para la «reorganización aleatoria de columnas en una array» que se puede realizar mediante la combinación de las funciones size() y randperm() :

Ejemplo 1 

Matlab

% MATLAB code for random shuffling
% of columns in a Matrix
A = [1 2 3   % Specifying a 3*3 matrix
     4 5 6
     7 8 9];
 
% Calling the size() function over
% the above matrix which gives a row vector
% whose elements are the lengths of the
% corresponding dimensions of A
rows = size(A);
 
% Calling the randperm() function for the
% random permutation of the above matrix
% over its dimension of 3*3
P = randperm(rows);
 
% Getting the row wise randomly shuffled matrix
B = A(P, : )

Producción

B =
  1   2   3
  7   8   9
  4   5   6

Ejemplo 2

Matlab

% MATLAB code for random shuffling
% of columns in a Matrix
A = [1 2 3 4  % Specifying a 4*4 matrix
     5 6 7 8
     9 10 11 12
     13 14 15 16];
      
% Calling the randperm() function to
% randomly shuffle the rows of matrix A
A(randperm(size(A, 2)), : )

Producción

ans =
   9   10   11   12
   1    2    3    4
   5    6    7    8
  13   14   15   16

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 *