randi
均匀分布的伪随机整数
语法
说明
X = randi(
返回一个介于 imax
)1
和 imax
之间的伪随机整数标量。
X = randi(
返回 imax
,sz1,...,szN
)sz1
×...×szN
数组,其中 sz1,...,szN
指示每个维度的大小。例如,randi(10,3,4)
返回一个由介于 1 和 10 之间的伪随机整数组成的 3×4 数组。
X = randi(___,
返回一个由数据类型为 typename
)typename
的介于 1
和 imax
之间的伪随机整数组成的数组。typename
输入可以是 "single"
、"double"
、"int8"
、"uint8"
、"int16"
、"uint16"
、"int32"
、"uint32"
或 "logical"
。您可以使用上述语法中的任何输入参量。
X = randi(
从随机数流 s
,___)s
而不是默认全局流生成整数。要创建一个流,请使用 RandStream
。您可以指定 s
,后跟上述语法中的任何输入参量组合。
示例
输入参数
提示
randi
生成的数字序列由均匀伪随机数生成器的内部设置决定,该生成器是rand
、randi
和randn
的基础。您可以使用rng
控制这一共享的随机数生成器。randi
返回的数组可以包含重复的整数值。此行为有时称为替换采样。如果您需要所有的唯一值,请使用randperm
。如果
imin
和imax
在输出类型(如typename
或原型p
所指定)的范围之外,则randi
首先在区间[imin,imax]
内创建随机整数,并将任何产生的超出范围的整数转换为输出类型的最小值或最大值。例如:rng default; r = randi([-10 10],1,10)
r = 7 9 -8 9 3 -8 -5 1 10 10
rng default; r = randi([-10 10],1,10,"logical")
r = 1×10 logical array 1 1 0 1 1 0 0 1 1 1