MATLAB Crear matriz aleatoria
-
Genere números aleatorios usando la función
rand()
en MATLAB -
Genere números aleatorios usando la función
randi()
en MATLAB -
Genere números aleatorios usando la función
randn()
en MATLAB -
Genere números aleatorios usando la función
randperm()
en MATLAB -
Genere números aleatorios usando la función
betarnd()
en MATLAB -
Genere números aleatorios usando la función
random()
en MATLAB
Este tutorial discutirá cómo generar o crear números aleatorios usando las funciones rand()
, randi()
, randn()
, randperm()
, betarand()
y random()
en MATLAB.
Genere números aleatorios usando la función rand()
en MATLAB
Si desea generar números aleatorios distribuidos uniformemente, puede usar la función rand()
en MATLAB, que genera números aleatorios entre 0 y 1. También puede especificar el tamaño del array que contiene valores aleatorios, y cada valor será entre 0 y 1, que puede escalar de acuerdo con sus requisitos multiplicándolos con un escalador. Por ejemplo, generemos un array de 2 por 2 de valores aleatorios usando la función rand()
. Vea el código a continuación.
rn = rand(2)
Producción :
rn =
0.2259 0.2277
0.1707 0.4357
Como puede ver en la salida, se genera un array de 2 por 2 que contiene valores aleatorios entre 0 y 1. Si desea especificar el rango de los números aleatorios, debe usar la siguiente fórmula.
rn = a + (b-a).*rand(n,1)
En esta fórmula, a
es el límite inferior, b
es el límite superior y n
es la longitud de los números aleatorios. Por ejemplo, generemos diez números aleatorios en el rango de 2 a 8. Vea el código a continuación.
a = 2;
b = 8;
n = 10;
rn = a + (b-a).*rand(n,1)
Producción :
rn =
7.5403
4.5812
3.1089
7.4293
7.8785
4.6332
2.6667
3.5484
4.4523
5.5694
Hay diez números aleatorios en el rango de 2 a 8. Si solo desea números enteros en la salida, puede convertir estos números aleatorios en números enteros usando la función round()
, que redondea un número de punto flotante al entero más cercano . También puede clonar el tamaño y el tipo de datos de los números aleatorios de un array existente utilizando la función size()
para el tamaño y la propiedad like
para el tipo de datos. Por ejemplo, creemos un array y generemos valores aleatorios de acuerdo con el tamaño y el tipo de datos de esa matriz. Vea el código a continuación.
v = [2 3 1 5]
rn = rand(size(v),'like',v)
Producción :
v =
2 3 1 5
rn =
0.4886 0.5785 0.2373 0.4588
El tamaño y el tipo de datos del array y los números aleatorios son los mismos. Consulte este enlace para obtener más detalles sobre la función rand()
.
Genere números aleatorios usando la función randi()
en MATLAB
La función anterior genera números aleatorios de punto flotante, pero si desea generar números enteros aleatorios, puede usar la función randi()
en MATLAB, que genera números enteros aleatorios de 1 a un entero especificado que puede especificar como un primer argumento en la función randi()
. También puede especificar el tamaño del array de salida que contiene valores aleatorios como segundo y tercer argumento. Por ejemplo, generemos un array de 3 por 3 que contenga números enteros aleatorios del 1 al 15. Vea el código a continuación.
rn = randi(15,3,3)
Producción :
rn =
6 1 8
11 12 14
3 8 10
el array tiene un tamaño de 3 por 3 que contiene números enteros aleatorios entre 1 y 15. También puede generar números enteros aleatorios entre un rango específico, y solo tiene que pasar el rango entre corchetes como primer argumento del función randi()
. Por ejemplo, generemos 10 números aleatorios entre -10 y 10. Vea el código a continuación.
rn = randi([-10,10],10,1)
Producción :
rn =
2
8
6
2
-7
-5
8
-10
0
-7
Hay diez números aleatorios en el rango de -10 a 10. También puede definir el tipo de datos de los números enteros pasando el nombre del tipo de datos en la función randi()
. Los tipos de datos que puede elegir son: 'single'
, 'double'
, 'int8'
, 'uint8'
, 'int16'
, 'uint16'
, 'int32'
, o 'uint32'
. Puede definir el tamaño de los números aleatorios a partir del tamaño del array existente usando la función size()
y el tipo de datos numérico usando la propiedad like
. Por ejemplo, generemos un array de valores aleatorios según el tamaño y el tipo de datos numéricos de un array existente. Vea el código a continuación.
v = [1 2; 6 7]
rn = randi(7,size(v),'like',v)
Producción :
v =
1 2
6 7
rn =
6 1
7 7
El tamaño y el tipo de datos del array y los números aleatorios son los mismos. Consulte este enlace para obtener más detalles sobre la función randi()
.
Genere números aleatorios usando la función randn()
en MATLAB
Si desea generar números aleatorios normalmente distribuidos, puede usar la función randn()
en MATLAB. La función randn()
es la misma que la función rand()
con solo la diferencia en el tipo de distribución. La función rand()
genera números aleatorios distribuidos uniformemente mientras que la función randn()
genera números aleatorios distribuidos normalmente. Puede utilizar cualquiera de estas funciones según sus necesidades. Consulte este enlace para obtener más detalles sobre la función randn
.
Genere números aleatorios usando la función randperm()
en MATLAB
Si desea generar una permutación aleatoria de números enteros, puede usar la función randperm()
en MATLAB. La permutación aleatoria de los enteros estará entre 1 y un número específico que puede definir en la función randperm()
como primer argumento. También puede definir el número de enteros que desea generar como segundo argumento en la función. Por ejemplo, generemos una permutación aleatoria de 6 enteros únicos. Vea el código a continuación.
rn = randperm(10,5)
Producción :
rn =
2 3 10 8 7
Todos los enteros son únicos y van del 1 al 10. Tenga en cuenta que la función randperm()
es la misma que la función randi()
con la diferencia de que randperm()
genera enteros únicos, mientras que en el función randi()
, los números enteros se pueden repetir. Consulte este enlace para obtener más detalles sobre la función randperm
.
Genere números aleatorios usando la función betarnd()
en MATLAB
Si desea generar números aleatorios a partir de la distribución beta, puede utilizar la función betarnd()
en MATLAB. Esta función genera números enteros aleatorios especificados por el primer y segundo argumento: vectores, matrices o matrices del mismo tamaño. Por ejemplo, generemos un array de 1 por 5 de números aleatorios a partir de la distribución beta utilizando dos vectores como entrada. Vea el código a continuación.
a = [1 2 3 4 5];
b = [9 8 7 6 5];
rn = betarnd(a,b)
Producción :
rn =
0.1234 0.1847 0.3334 0.2689 0.3678
También puede especificar el tamaño del array de salida definiéndola en el tercer y cuarto argumento de la función betarnd()
. Consulte este enlace para obtener más detalles sobre la función betarnd()
.
Genere números aleatorios usando la función random()
en MATLAB
Si desea generar números aleatorios a partir de un tipo de distribución específico, puede utilizar la función random()
en MATLAB. Debe definir el nombre de la distribución como el primer argumento y luego, después de eso, debe pasar los parámetros de distribución. Por ejemplo, generemos números aleatorios normalmente distribuidos usando un valor sigma de 0 y un valor mu de 1 usando la función random()
. Vea el código a continuación.
s = 0;
m = 1;
rn = random('Normal',s,m)
Producción :
rn =
-0.1649
Puede definir su nombre de distribución requerido en la función. Puede utilizar muchos tipos de distribuciones como: Beta
, Binomial
, Exponential
, Gamma
y muchas más. Consulte este enlace para obtener más detalles sobre la función random
.
Artículo relacionado - MATLAB Random
- Métodos de selección para una muestra aleatoria de matriz o array con conjunto de datos en MATLAB
- Permutación aleatoria con MATLAB