matlab随机数
Matlab中关于随机数的产生有3种库函数,下面我们来看看它们的形式:
1、rand(…)
它是生成0~1之间(开环,不包含0和1两个数)均匀分布的伪随机数,也就是无穷次试验其中每个数产生的概率是一样的。
它的函数格式如下:
R = rand(N) % 生成N×N的矩阵随机数,其中每个元素位于0~1之间
R = rand([M,N,P,...]) % 生成M×N×P×...的矩阵随机数
R = rand(M,N,P,...) % 同上,中括号不是必须
R = rand(..., CLASSNAME) % 生成CLASSNAME类型的随机数,如 'double' or 'single'
例如生成double类型的5×3均匀分布的0到1间随机数:
R = rand(5,3,'double');
同理,我们想要生成100个位于[a,b]间的数据可表示为:
R = a + (b-a).*rand(100,1);
2、randi(…)
randi(N) 是生成(0,N]间均匀分布的伪随机数,并且数都是整数,所以每个数是位于1到N之间。它的表达形式有以下几种:
R = randi(iMax) % 生成1:iMax之间的均匀分布随机数
R = randi(iMax,m,n) % 生成m×n的1:iMax之间的均匀分布随机数
R = randi([iMin,iMax],m,n) % 生成m×n的iMin:iMax之间的均匀分布随机数
例如:
R1 = randi(10,5,1); % 生成5×1的1:10之间随机数
R2 = randi([10,20],2,3); % 生成2×3的10:20之间随机数
3、randn(…)
有时候我们希望生成的随机数是呈现正态分布的,而不是随机分布,这时候我们就需要使用randn函数了。它生成的随机数整体概率为正态分布,均值为0,方差为1。也就是说生成的数中出现0的概率最大,而越往无穷或者负无穷概率越小,但是出现的随机数可能为所有实数,只不过出现的概率不同。它的格式如下:
R = randn(N) % 生成N×N个正态分布的随机数
R = randn(M,N) % 生成M×N个正态分布的随机数
例如:
R = randi(3); % 生成3×3的正态分布的随机数
4、稳定的重启分布rng
这里我们来看一下如何让每次程序运行生成的随机数都一样,主要借助的是rang函数,格式如下:
rng('default');
R = rand(1,5); % 每次程序运行生成恒定的1×5随机数
此外还有生成同样分布的表达方式:
s = rng;
R1 = rand(1,5);
rng(s);
R2 = rand(1,5); % R1和R2随机数一样
个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!
转载请注明出处:http://blog.csdn.net/fx677588/article/details/72811673
相关阅读
请问哦一下,代码怎么生成,比如QQ,旺旺,我正在装修店铺需要用到,求解答
如何使用Matlab画图的legend和label: http://jingyan.baidu.com/article/f006222806b6dcfbd2f0c879.htmlmatlab画柱状图:http://b
(转)【电子书分享】《MATLAB 7.0 基础教程》-清华大学出
直接给链接: 《MATLAB 7.0 基础教程》-清华大学出版社-孙祥等编著 1.pdf: https://u8266128.pipipan.com/fs/8266128-301596145—
模拟退火(Simulated Annealing, SA)算法简介与MATLAB
目录 模拟退火算法概述 算法步骤 算法特点 模拟退火算法MATLAB实现 【例1】一元/多元函数优化 【例2】TSP问题 模拟退火算法概述
笔者由于觉得很多东西都用工具可以做到很便利 公司由于换成Springboot和用Springdata JPA开发 所以本人觉得什么都要手写效率不高