Gestionar La Secuencia Global ConRandstream
Las Funciones兰德
,,,,兰德
,,,,兰迪
y兰德珀
extraen是aleatorios de una secuencia de numeros aleatorios subyacente, llamada lasecuencia global。La Secuencia全球ES UN OBJETORandstream
。LaUnciónrng
proporciona una forma sencilla de controlar la secuencia global. Para un control más exhaustivo, la claseRandstream
Le Persite crear una secuencia secuencia de la secuencia Global,obtener un Sidentificador para la secuencia la secuencia y Controlar lageneratacióndeNúmerosaleatorios。
Utilicerng
PARA Spoteecer El GeneradordeNúmerosaleatorios en la semilla(0
)yalgoritmo (Mersenne Twister) predeterminados. Guarde la configuración del generador.
rng('default')s = rng
s =带有字段的结构:类型:'Twister'种子:0状态:[625x1 UINT32]
Cree Un vector fila de 1 por 6 de valores aleatorios distribuidos de manera nimeree enerere entre endre 0 y 1。
x = rand(1,6)
x =1×60.8147 0.9058 0.1270 0.9134 0.6324 0.0975
UtiliceRandstream。getGlobalStream
para devolver un Sidentificador a la secuencia Global,es Decir,la secuencia a secuencia Global de la que兰德
númerosaleatorios属。Si UtilizaRandstream。getGlobalStream
para obtener un Sidentificador para la secuencia Global,puede ver los cambios queeareizóa la secuencia secuencia global conrng
。
GlobalStream = randstream.getGlobalStream
globalStream = mt19937ar random stream (current global stream) Seed: 0 NormalTransform: Ziggurat
Cambie la semilla y el algoritmo del generador y cree un nuevo vector fila aleatorio. Muestre la secuencia global actual de la que兰德
númerosaleatorios属。
rng(1,'Philox')Xnew = rand(1,6)
Xnew =1×60.5361 0.2319 0.7753 0.2390 0.0036 0.5262
GlobalStream = randstream.getGlobalStream
GlobalStream = Philox4x32_10随机流(当前全局流)种子:1 normalTransform:反转
连续的,restaure laconfiguración原始del generador y cree un vector aleatorio。El Resultado Concuerda con el vector fila原始queX
CreóConEl Generador Predeterminado。
rng(s)xold = rand(1,6)
xold =1×60.8147 0.9058 0.1270 0.9134 0.6324 0.0975
De manera predeterminada, las funciones de generación de números aleatorios, como兰德
,利用La SecuenciadeNúmerosaleatorios Global。para especificar una secuencia diferente,cree otro objeto deRandstream
。PáseloComoel Primer grignto de Entrada a兰德
。Por Ejemplo,Cree Un Vector 1 Por 6DeNúmerosaleatorios Usando Mersenne TwisterRápidoOrientado A Simd。
mystream = randstream('dsfmt19937')
myStream = dsfmt19937 random stream Seed: 0 NormalTransform: Ziggurat
r =兰德(myStream,1,6)
r =1×60.0306 0.2131 0.2990 0.3811 0.8635 0.1334
Cuando llama a la función兰德
conmyStream
como el Primer grignto de Entrada,ExtralenúmerosdemyStream
y没有一个afecta a los Resultados de la Secuencia Global。
Si Desea建立者myStream
como una secuencia global, puede utilizar la función del objetorandstream.setglobalstream
。
randstream.setglobalstream(mystream)globalStream = randstream.getGlobalStream
GlobalStream = DSFMT19937随机流(当前全局流)种子:0 normalTransform:Ziggurat
En muchos casos, la funciónrng
Es todo lo que necesita para Controlar la Secuencia Global,pero la claseRandstream
permite el control sobre ciertas funcionalidades avanzadas, como la elección del algoritmo utilizado para los valores aleatorios normales.
por ejemplo,cree un objetoRandstream
y especifique el algoritmo detransformaciónParapara para valores seudoaleatorios distribuluidos normormente cuando utiliza兰德
。Genere Valores seudoaleatorios distribuloidos normormente con elgoritmo detransformaciónPolar
,en vez del algoritmo detransformaciónZiggurat
预定。
mystream = randstream('MT19937AR',,,,“正常变形”,,,,'极性')
mystream = MT19937AR随机流种子:0 normalTransform:极性
EstablezcamyStream
como la secuencia global. Cree 6 números aleatorios con distribución normal a partir de la secuencia global.
randstream.setglobalstream(mystream)randn(1,6)
ans =1×60.2543 -0.7733 -1.7416 0.3686 0.5965 -0.0191