MATLAB - Genera un número aleatorio y restablece la semilla del número aleatorio actual

rankVarias expresiones de funciones comúnmente utilizadas:

X = rand ()

X = rand 返回一个在区间 (0,1) 内均匀分布的随机数。

>> x = rand

x =

    0.8147

X = rand (n)

X = rand(n) 返回一个 n×n 的随机数矩阵。
r = rand(5)
r = 5×5

    0.8147    0.0975    0.1576    0.1419    0.6557
    0.9058    0.2785    0.9706    0.4218    0.0357
    0.1270    0.5469    0.9572    0.9157    0.8491
    0.9134    0.9575    0.4854    0.7922    0.9340
    0.6324    0.9649    0.8003    0.9595    0.6787

X = borde (sz1, ..., szN)

X = rand(sz1,...,szN) 返回由随机数组成的 sz1×...×szN 数组,其中 sz1,...,szN 指示每个维度的大小。

Por ejemplo: rand(3,4)devuelve una matriz de 3 × 4.

>> x = rand(3,4)

x =

    0.9058    0.6324    0.5469    0.1576
    0.1270    0.0975    0.9575    0.9706
    0.9134    0.2785    0.9649    0.9572

Número aleatorio en el intervalo especificado:

En general, puedes usar la fórmula:

 r = a + (b-a).*rand(N,1) 生成区间 (a,b) 内的 N 个随机数。

Ejemplo: generar un vector de columna de 10 × 1 que consta de números distribuidos uniformemente en el intervalo (-5,5).

r = -5 + (5+5)*rand(10,1)
r = 10×1

    3.1472
    4.0579
   -3.7301
    4.1338
    1.3236
   -4.0246
   -2.2150
    0.4688
    4.5751
    4.6489

Se puede ver que lo anterior estamos generando decimales, no enteros, entonces también podemos usar randi(nota no rand) el comando para generar enteros en el intervalo especificado.

Entero aleatorio

Ejemplo: Use la función randi (en lugar de rand) para generar 5 enteros aleatorios distribuidos uniformemente entre 10 y 50.

r = randi([10 50],1,5)
r = 1×5

    43    47    15    47    35

Plural al azar:

Ejemplo: generar un número complejo aleatorio cuyas partes reales e imaginarias están en el intervalo (0,1).

a = rand + 1i*rand
a = 0.8147 + 0.9058i

Restablecer el generador de números aleatorios

Generador de números aleatorios: similar Ca la semilla de números pseudoaleatorios en el lenguaje, hacemos que el número aleatorio generado por la computadora no sea tan "aleatorio".
Cuando se determina la semilla inicial de números aleatorios, se determinan las series de números generadas por ellas, por lo que llamaremos a esto un número pseudoaleatorio.
Solo cuando restablecemos constantemente la semilla de número aleatorio actual (el Clenguaje trata el tiempo como una semilla de número aleatorio), la serie de números que generamos a partir de ella parece ser aleatoria.
De esta manera, también podemos guardar la semilla de número aleatorio actual, aunque esto no tiene ningún sentido, pero es mejor pensar así, cuando los datos que queremos es sobrevivir a través de una semilla de número aleatorio, la próxima vez que queremos los mismos datos En ese momento, no tenemos forma de comenzar, la única forma es guardar la semilla de número aleatorio actual, la próxima vez que podamos continuar llamando a la semilla de número aleatorio que guardamos.

Ejemplo: guarde el estado actual del generador de números aleatorios y cree un vector 1 × 5 que consista en números aleatorios.

s = rng;
r = rand(1,5)
r = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324
``将随机数生成器的状态恢复为 s,然后创建一个由随机数组成的新 1×5 向量。值与之前相同。

```cpp
rng(s);
r1 = rand(1,5)
r1 = 1×5

    0.8147    0.9058    0.1270    0.9134    0.6324

Matriz tridimensional

Ejemplo: crear una matriz de 3 × 2 × 3 de números aleatorios.

>> x =rand(3,2,3)

x(:,:,1) =

    0.1869    0.6463
    0.4898    0.7094
    0.4456    0.7547


x(:,:,2) =

    0.2760    0.1626
    0.6797    0.1190
    0.6551    0.4984


x(:,:,3) =

    0.9597    0.2238
    0.3404    0.7513
    0.5853    0.2551

Especifique el tipo de datos del número aleatorio

Ejemplo: Cree un vector de 1 × 4 que consta de números aleatorios cuyos elementos son valores de precisión simple.

r = rand(1,4,'single')
r = 1x4 single row vector

    0.8147    0.9058    0.1270    0.9134

class(r)
ans = 
'single'
Publicado 84 artículos originales · ganó 18 · vistas 5805

Supongo que te gusta

Origin blog.csdn.net/qq_44486550/article/details/105441130
Recomendado
Clasificación