本页对应的英文页面已更新,但尚未翻译。 若要查看最新内容,请点击此处访问英文页面。

tallrng

控制 tall 数组的随机数生成

说明

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

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

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

tallrng(seed,generator)tallrng('shuffle',generator) 选择随机数生成器。例如,tallrng(0,'mlfg6331_64')

示例

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

示例

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

示例

全部折叠

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

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

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 =

  10x1 tall array

    ?
    ?
    ?
    ?
    ?
    ?
    ?
    ?
    :
    :

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

tallrng(state)
n2 = arrayfun(@(x) x+randn, t)
n2 =

  10x1 tall array

    ?
    ?
    ?
    ?
    ?
    ?
    ?
    ?
    :
    :

输入参数

全部折叠

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

种子的最大值为 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 数组计算期间生成的随机数。

兼容性考虑

全部展开

R2019a 中的行为有变化

另请参阅

|

在 R2017b 中推出