MATLAB生成随机数总结

1,rand 生成均匀分布的伪随机数。分布在(0~1)之间
  语法:rand(m,n)生成m行n列的均匀分布的伪随机数
             rand(m,n,'double')生成指定精度的均匀分布的伪随机数,参数还可以是'single'
             rand(RandStream,m,n)利用指定的RandStream生成伪随机数
            
2,randn 生成标准正态分布的伪随机数(均值为0,方差为1)
   主要语法:和上面一样
  
3, randi 生成均匀分布的伪随机整数
   主要语法:randi(iMax)在开区间[1,iMax]上生成均匀分布的伪随机整数
             randi(iMax,m,n)在开区间[1,iMax]生成mXn型随机矩阵
             r = randi([iMin,iMax],m,n)在开区间[iMin,iMax]生成mXn型随机矩阵
            
    以上3个函数都是根据标准伪随机数发生器的内部状态产生的,所以如果把发生器设置为初始状态,会得到相同的随机数,但如果改变了状态,得到的结果就是不同的;而在matlab打开时,发生器复位到初始状态,所以用上面3个函数得到的结果将是一样的
如我的matlab在打开时输入以下命令将得到相同的随机数:
>> randn(3)

ans =

   0.537667139546100   0.862173320368121  -0.433592022305684
   1.833885014595087   0.318765239858981   0.342624466538650
  -2.258846861003648  -1.307688296305273   3.578396939725761

>> randn(3)

ans =

   2.769437029884877   0.725404224946106  -0.204966058299775
  -1.349886940156521  -0.063054873189656  -0.124144348216312
   3.034923466331855   0.714742903826096   1.489697607785465

>> randn(3)

ans =

   1.409034489800479  -1.207486922685038   0.488893770311789
   1.417192413429614   0.717238651328838   1.034693009917860
   0.671497133608081   1.630235289164729   0.726885133383238
  
   如果想将发生器复位到一个固定状态,可以使用如下命令
  randn('seed',0);
   randn(3)
   以上两条命令将总是得到一样的随机数。
   上述命令已经在7.7以后摒弃了(但仍可继续用),7.7以后可以使用randstream函数,如下
   reset(RandStream.getDefaultStream)
  
   一般情况下,随机数都是从默认随机数流中得到数据的,而可以创建自己的数据流对象,并可以从自己的数据流对象中得到随机数,详见randstream函数。
   
    如果希望matlab在不同程序段产生不同的随机数据,可以将默认数据流设置为基于时钟的,方法为
    RandStream.setDefaultStream ...
     (RandStream('mt19937ar','seed',sum(100*clock)));

normrnd是自己可以指定均数和标准差的正态分布。

 

另外,Matlab随机数生成函数主要包括:

betarnd 贝塔分布的随机数生成器   

binornd 二项分布的随机数生成器    

chi2rnd 卡方分布的随机数生成器   

exprnd 指数分布的随机数生成器   

frnd f分布的随机数生成器   

gamrnd 伽玛分布的随机数生成器   

geornd 几何分布的随机数生成器   

hygernd 超几何分布的随机数生成器   

lognrnd 对数正态分布的随机数生成器   

nbinrnd 负二项分布的随机数生成器   

ncfrnd 非中心f分布的随机数生成器   

nctrnd 非中心t分布的随机数生成器   

ncx2rnd 非中心卡方分布的随机数生成器   

normrnd 正态(高斯)分布的随机数生成器   

poissrnd 泊松分布的随机数生成器   

raylrnd 瑞利分布的随机数生成器   

trnd 学生氏t分布的随机数生成器   

unidrnd 离散均匀分布的随机数生成器   

http://baike.baidu.com/link?url=1URFkJkoMM_MQqKgZELom1yFooNAcBZgc4AaJAHLp9RbEfIu0ZYNR74JUQ5Qx2za9fUFgl_wTmShTmTNO9a2VK

unifrnd 连续均匀分布的随机数生成器   

weibrnd 威布尔分布的随机数生成器

资源来自:http://kalmanfans.is-programmer.com/posts/31988.html

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Matlab中,可以使用几种不同的方法来生成随机数。其中包括使用rand函生成均匀分布的伪随机数,使用unifrnd函生成在指定范围内的均匀分布随机数,以及使用linspace函生成线性间隔的向量。 如果你想生成一个0至1之间的随机矩阵,可以使用rand函,例如: s3 = rand(1,5); 这将生成一个大小为1x5的随机矩阵,其中的元素是均匀分布在0至1之间的伪随机数。 如果你想生成一个在指定范围内的随机矩阵,可以使用unifrnd函,例如: s5 = 2 + (5-2) * rand(1,5); 这将生成一个大小为1x5的随机矩阵,其中的元素是在2至5之间的均匀分布的伪随机数。 另外,如果你想生成一个线性间隔的向量,可以使用linspace函,例如: s8 = linspace(0,2,5); 这将生成一个大小为1x5的向量,其中的元素是从0到2之间等间隔的值。123 #### 引用[.reference_title] - *1* [MATLAB生成随机数方法总结](https://blog.csdn.net/kebu12345678/article/details/90437951)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *2* *3* [MATLAB中的随机数](https://blog.csdn.net/qq_41686044/article/details/121754225)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值