Matlab学习 之 随机数
2016-05-11 11:14
381 查看
matlab中生成随机数
主要有三个函数:rand, randn,randi1,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)在开区间(0,iMax)生成均匀分布的伪随机整数
randi(iMax,m,n)在开区间(0,iMax)生成mXn型随机矩阵
r = randi([iMin,iMax],m,n)在开区间(iMin,iMax)生成mXn型随机矩阵。
示例验证
均值分布概率分布图:
y=rand(1,3000000); hist(y,2000);
散点图:
y=rand(1,3000000); plot(y)
正态分布
概率分布图:
y=randn(1,3000000); hist(y,2000);
散点图:
y=randn(1,3000000); plot(y);
随机种子与伪随机数的重复生成
正常情况下每次调用相同指令例如rand生成的伪随机数是不同的,例如:
rand(1,3) rand(1,3) %matlab的输出为: ans = 0.139043482536049 0.734007633362635 0.194791464843949 ans = 0.602204766324215 0.937923745019422 0.149285414707192
如何使两个语句生成的随机数相等呢?
你也可以直接使用@RandStream 类的reset静态方法重置种子状态来获取相同的随机生成序列,下面是示例代码:
stream = RandStream.getDefaultStream;%获取默认的随机种子(暂时这么叫,帮助有详细解释) reset(stream);%重置 rand(stream,1,3) reset(stream);%重置 rand(stream,1,3) %matlab的输出为: ans = 0.814723686393179 0.905791937075619 0.126986816293506 ans = 0.814723686393179 0.905791937075619 0.126986816293506
可以看出生成的随机码是相等的,这样可以用于重复实验上来
相关文章推荐
- matlab读入从文件中读取大量的数据
- matlab函数 size()函数和waterfal()l函数,三维图形,矩阵
- matlab在程序里%%是什么意思
- Matlab文件操作及读txt文件
- Matlab 读写入txt文件
- 写论文第十天:MATLAB之rsi函数
- 直方图均衡化(matlab)
- utilities(matlab)—— l2row/l2col
- 【Matlab】图像插值函数interp2理解
- 【Matlab】Matlab中的plot函数及legend函数解析 持续更新...
- Matlab Tricks(四)—— remove DC
- matlab工作路径(当前目录)的设置
- Matlab函数meshgrid的作用:
- 【Matlab函数】conv2的用法
- 波束形成(1)
- 分水岭算法的原理、改进及matlab实现
- Matlab学习 之 文件操作
- matlab 源码阅读
- matlab 序列化
- Matlab学习 之 Multivariance Linear Regression