欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 美食 > MATLAB中random函数用法

MATLAB中random函数用法

2025/2/24 3:49:38 来源:https://blog.csdn.net/jk_101/article/details/133588374  浏览:    关键词:MATLAB中random函数用法

目录

语法

说明

示例

通过指定分布名称和参数生成一个随机数

使用分布对象生成一个随机数

重置随机数生成器

根据现有数组克隆大小

生成多个随机数

生成随机数组成的多维数组


        random函数的功能是生成随机数。

语法

R = random(name,A)
R = random(name,A,B)
R = random(name,A,B,C)
R = random(name,A,B,C,D)
R = random(pd)
R = random(___,sz1,...,szN)
R = random(___,sz)

说明

        R = random(name,A) 从由 name 和分布参数 A 指定的单参数分布族中返回一个随机数。

        R = random(name,A,B) 从由 name 和分布参数 A 和 B 指定的双参数分布族中返回一个随机数。

        R = random(name,A,B,C) 从由 name 和分布参数 A、B 和 C 指定的三参数分布族中返回一个随机数。

        R = random(name,A,B,C,D) 从由 name 和分布参数 A、B、C 和 D 指定的四参数分布族中返回一个随机数。

        R = random(pd) 从概率分布对象 pd 中返回一个随机数。

        R = random(___,sz1,...,szN) 使用上述任一语法的输入参数,根据指定的概率分布生成一个随机数数组,其中 sz1,...,szN 表示每个维度的大小。

        R = random(___,sz) 使用上述任一语法的输入参数,根据指定的概率分布生成一个随机数数组,其中向量 sz 指定 size(r)。

示例

通过指定分布名称和参数生成一个随机数

        从均值 μ 等于 1 且标准差 σ 等于 5 的正态分布中生成一个随机数。指定分布名称 'Normal' 和分布参数。

rng('default') % For reproducibility
mu = 1;
sigma = 5;
r = random('Normal',mu,sigma)
r = 3.6883

使用分布对象生成一个随机数

        创建一个正态分布对象,并使用该对象生成一个随机数。创建均值 μ 等于 1、标准差 σ 等于 5 的正态分布对象。

mu = 1;
sigma = 5;
pd = makedist('Normal','mu',mu,'sigma',sigma);

        从该分布中生成一个随机数。

rng('default') % For reproducibility
r = random(pd)
r = 3.6883

重置随机数生成器

        保存随机数生成器的当前状态。然后从速率参数为 5 的泊松分布生成一个随机数。

s = rng;
r = random('Poisson',5)
r = 5

        将随机数生成器的状态恢复为 s,然后创建一个新随机数。值与之前相同。

rng(s);
r1 = random('Poisson',5)
r1 = 5

根据现有数组克隆大小

        创建一个由随机数组成并且大小与一个现有数组相同的矩阵。使用形状参数为 2 和 0、尺度参数为 1、位置参数为 0 的稳定分布。

A = [3 2; -2 1];
sz = size(A);
R = random('Stable',2,0,1,0,sz)
R = 2×20.7604   -3.19452.5935    1.2193

        可以将前两行代码合并成一行。

R = random('Stable',2,0,1,0,size(A))
R = 2×20.4508   -0.6132-1.8494    0.4845

生成多个随机数

        使用默认参数值创建一个 Weibull 概率分布对象。

pd = makedist('Weibull')
pd = WeibullDistributionWeibull distributionA = 1B = 1

        从该分布中生成随机数。

rng('default')  % For reproducibility
r = random(pd,10000,1);

        使用服从 Weibull 分布拟合的 100 个 bin 构造一个直方图。

histfit(r,100,'weibull')

如图所示:

生成随机数组成的多维数组

        创建一个标准正态概率分布对象。

pd = makedist('Normal')
pd = NormalDistributionNormal distributionmu = 0sigma = 1

        从该分布中生成一个 2×3×2 随机数数组。

r = random(pd,[2,3,2])
r = 
r(:,:,1) =0.5377   -2.2588    0.31881.8339    0.8622   -1.3077r(:,:,2) =-0.4336    3.5784   -1.34990.3426    2.7694    3.0349

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词