Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

tallrng

控制 tall 数组的随机数生成

说明

tallrng("default") 将 tall 数组计算中使用的随机数生成器的设置还原为默认值。产生的随机数与重新启动 MATLAB® 的效果相同。

tallrng("shuffle") 根据当前时间指定随机数生成器的种子。当您希望每次生成不同的随机数序列时,请使用此语法。

tallrng(seed) 指定置随机数生成器的起点(或称为种子)。当您希望生成可预测的数字序列时,请使用此语法。

tallrng(seed,generator)tallrng("shuffle",generator) 还指定随机数生成器要使用的算法。例如,tallrng(0,"mlfg6331_64")

tallrng(generator) 指定种子为 0 的随机数生成器要使用的算法。此语法等效于 tallrng(0,generator) (自 R2023b 起)

示例

state = tallrng 以结构体形式返回随机数生成器的当前状态。利用该结构体,以后可以使用 tallrng(state) 将随机数生成器还原到捕获的状态。

示例

tallrng(state) 使用之前通过 state = tallrng 捕获的设置还原随机数生成器的状态。

注意

MATLAB 预设项 窗口中随机数生成器的默认算法和种子只影响 rng("default"),不影响对 tallrng("default) 的调用。

示例

全部折叠

捕获生成器的设置,生成一个随机数数组,然后还原生成器的初始设置,以创建可预测的随机数数组。

保存随机数生成器的当前状态。

state = tallrng
state = struct with fields:
           Type: 'threefry'
           Seed: 0
    StreamIndex: 1
      Substream: 1

使用 arrayfun 创建一个随机数 tall 数组。

t = tall(zeros(10,1));
n1 = arrayfun(@(x) x+randn, t);
n1 = gather(n1)
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 2: Completed in 0.35 sec
- Pass 2 of 2: Completed in 0.21 sec
Evaluation completed in 0.82 sec
n1 = 10×1

   -0.3479
    0.1057
    0.3969
    0.6544
   -1.8228
   -1.1037
    0.4521
    1.4768
    0.0832
   -1.2005

将生成器还原到之前的状态,然后重新生成随机数数组。两个数组 n1n2 相等。

tallrng(state)
n2 = arrayfun(@(x) x+randn, t);
n2 = gather(n2)
Evaluating tall expression using the Local MATLAB Session:
- Pass 1 of 2: Completed in 0.08 sec
- Pass 2 of 2: Completed in 0.064 sec
Evaluation completed in 0.25 sec
n2 = 10×1

   -0.3479
    0.1057
    0.3969
    0.6544
   -1.8228
   -1.1037
    0.4521
    1.4768
    0.0832
   -1.2005

输入参数

全部折叠

随机数种子,指定为非负整数。种子指定算法生成随机数的起点。当您需要可重现的结果时,请指定种子。

种子的最大值为 232-1

示例: tallrng(3)

随机数算法,指定为下表中的选项之一。您可以指定常规名称或便利名称。

名称便利名称描述
"threefry4x64_20"(默认值)"threefry"执行 20 轮的 Threefry 4×64 生成器
"mrg32k3a" "combRecursive"

组合多递归生成器

"mlfg6331_64""multFibonacci"

乘法滞后 Fibonacci 生成器

"philox4x32_10""philox"执行 10 轮的 Philox 4×32 生成器

tallrng 支持具有多个流和子流支持的随机数生成器。有关 MATLAB 中可用的生成器的完整列表,请参阅创建和控制随机数流

示例: tallrng(0,"mlfg6331_64")

先前的随机数生成器状态,指定为之前使用 state = tallrng 创建的结构体。

示例: state = tallrng 捕获随机数生成器的当前状态,tallrng(state) 还原生成器的这些设置。

数据类型: struct

输出参量

全部折叠

随机数生成器的状态,返回具有以下字段的结构体。

字段描述示例值
Type随机数生成器的类型'threefry'
Seed指示算法起点的数字(以实现可再现性)0
StreamIndex指示关联的总体数字流的索引 1
Substream指示关联的子流的索引1

示例: state = tallrng 捕获随机数生成器的当前状态,tallrng(state) 还原生成器的这些设置。

数据类型: struct

提示

  • 如果您拥有 Statistics and Machine Learning Toolbox™,则 tallrng 控制 datasamplecvpartitionTreeBagger 等函数在 tall 数组计算期间生成的随机数。

版本历史记录

在 R2017b 中推出

全部展开

另请参阅

|