matlab:生成随机数

本文介绍了如何在MATLAB中控制随机数生成,包括设置种子产生相同随机数、生成不同随机数、在特定区间按均匀分布生成随机数、按正态分布生成随机数以及按自定义概率分布进行随机抽样的方法和实例。

rng

作用:控制随机数的产生(Control random number generation)
实例1:每次产生随机数(调用rand, randi, randn)前,指定随机数生成种子,则会产生相同的随机数。
方法:rng(seed),注意:seed为非负整数

rng(1);
a = rand(1,2)
rng(1);
b = rand(1,2)

结果:

a =

    0.4170    0.7203


b =

    0.4170    0.7203

实例1:每次产生不同的随机数(调用rand, randi, randn)
方法:rng('shuffle')

rng('shuffle')
a1 = rand(1,2)
a2 = rand(1,2)

结果:

a1 =

    0.3954    0.8219


a2 =

    0.8381    0.5736

rand

实例1:在(0, 1)区间按均匀分布生成随机数
方法:rand(sz1,..szN)

>> rand(1,3)

ans =

    0.4854    0.8003    0.1419

实例2:在任意(a, b)区间按均匀分布生成随机数
方法:rand(sz1,...szN)*(b-a)+a
比如生成(-10,10)区间内的均匀分布随机数:

>> rand(1,3)*20-10

ans =

   -1.5648    8.3147    5.8441

randi

实例:在区间[a, b]按照均匀分布生成随机整数。
方法:randi([a, b], sz1,...szN)

>> randi([0,100],2,3)

ans =

    96     3    94
    66    85    68

randn

实例1:按照均值=0,标准差为1的正态分布生成随机数
方法:randn(sz1,...,szN)

实例2:按照均值=a,标准差为b的正态分布生成随机数
方法:b*randn(sz1,...,szN)+a

normrnd

normrnd(mu,sigma,[m,n,...])
按照均值=a,标准差为b的正态分布生成随机数

randsrc

实例:按自定义概率分布在样本池中进行随机抽样
方法:randsrc(m,n,[alphabet; prob])
alphabet为行向量,表示样本取值;prob为行向量,表示各元素的取值概率

>> res = randsrc(1,100,[20,70,90;0.1,0.7,0.2]);
>> hist(res)

绘制处直方图,可看出抽样结果符合预期分布。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值