创建随机数数组

2024-07-06

生成随机数 您可以使用 rand、randi、randn 和 randperm 函数生成遵循不同类型分布的随机数。rand 函数生成在 0 和 1 之间均匀分布的随机浮点数。例如,创建一个含有均匀分布浮点实数的 10,000×1 的列向量。

rng("default")

n = 10000;

r1 = rand(n,1);r1 中的所有值均处于开区间 (0,1) 内。绘制这些值的直方图。直方图大致平坦,表明这些值的样本遵循某种均匀分布。histogram(r1)

xlabel("Value")

ylabel("Counts")

title("Histogram of rand(" + n + ",1)")

randi 函数生成从离散均匀分布中抽取的随机 double 整数值。例如,创建一个 10,000×1 列向量,其中包含从离散均匀分布中抽取的闭区间 [1,10] 内的整数值。

n = 10000;

r2 = randi(10,n,1);绘制这些值的直方图。直方图大致平坦,表明 1 到 10 之间的整数样本遵循某种均匀分布。histogram(r2)

xlabel("Value")

ylabel("Counts")

title("Histogram of randi(10," + n + ",1)")

randn 函数生成从标准正态分布中抽取的随机实数浮点数。例如,创建一个含有标准正态分布数的 20,000×1 的列向量。

n = 20000;

r3 = randn(n,1);绘制这些值的直方图。直方图呈高斯形状,表明这些值的样本遵循标准正态分布,其均值为 0,标准差为 1。histogram(r3)

xlabel("Value")

ylabel("Counts")

title("Histogram of randn(" + n + ",1)")

randperm 函数生成无重复值的 double 类型的随机整数数组。例如,创建一个 1×10 数组,其中包含从区间 [1,15] 中随机选择的整数。

r4 = randperm(15,10);与 randi(可能返回包含重复值的数组)不同,randperm 返回无重复值的数组。绘制这些值的直方图。每个整数在直方图中最多出现一次。histogram(r4)

xticks(1:15)

xlim([0 16])

yticks([0 1])

xlabel("Value")

ylabel("Counts")

title("Histogram of randperm(15,10)")

接连调用上述任一函数均可返回不同的结果。这种特性适合用于创建不同的随机值数组。