matlab生成指定分布随机数
randint是方法还是函数?
randint是方法还是函数?
matlab中rand函数是产生0到1的随机分布
matlab中randn函数是产生标准正态分布
randint是产生整数随机数,默认为0和1
gtgt rand(3)
ans
0.8147 0.9134 0.2785
0.9058 0.6324 0.5469
0.1270 0.0975 0.9575
gtgt randn(3)
ans
-0.4326 0.2877 1.1892
-1.6656 -1.1465 -0.0376
0.1253 1.1909 0.3273
gtgt randint(3)
ans
1 1 0
0 0 0
1 1 1
可以自己help查看具体情况,里面有用法和示例
gtgt help rand
gtgthelp randn
gtgthelp randint
怎样用Matlab产生服从均匀分布的一组随机数?
在matlab 中产生0-1上均匀分布的随机数方法如下:
方法1、对于问题,如果 Y 是m*n的服从0~1均匀分布的随机矩阵:
Y rand(m,n);
方法2、用统计工具箱,Y unifrnd(0,1,m,n).
另外,提供常用的函数分布供参考:
1、 均匀分布U(a,b)
产生m*n阶[a,b]均匀分布U(a,b)的随机数矩阵:unifrnd (a,b,m, n)
2、0-1分布U(0,1)
产生m*n阶[0,1]均匀分布的随机数矩阵:rand (m, n)
3、二类分布binornd(N,P,mm,nn),即产生mm*nn均值为N*P的矩阵
4、产生m*n阶离散均匀分布的随机数矩阵:
unidrnd(N,mm,nn) 产生一个数值在1-N区间的mm*nn矩阵;
5、产生mm nn阶期望值为 的指数分布的随机数矩阵:exprnd ( ,mm, nn).
randi如何产生向量?
1)等概率地生成一个m*n的矩阵,且矩阵元素只有0和1。matlab的表示为:randsrc(m,n,[0,1]);其中,m是行数,n是列数。
2)以概率p生成1,(1-p)生成0, matlab表示为:randsrc(m,n,[0,1;p,(1-p)]); 注意:
1)中是2)的特例,即当p0.5时候。
3)以概率[p1,p2,…,pk]生成元素为[x1,x2,…,xk]中的数值的m*n维的矩阵,则matlab表示为:randsrc(m,n,[x1,x2,…,xk;p1,p2,…,pk]);元素x1,x2,…,xk和概率p1,p2,…,pk之间的符号位分号,即;。注意:p1 p2 … pk1.(否则会出错) 等概率地生成一个m*n的矩阵的matlab表示方法还有如下几种:
a-1)round(rand(m,n)); 其中,rand(m,n)生成均匀分布的伪随机数。分布在(0~1)之间;round(x)表示对x取四舍五入。 a-2) randi(2,m,n)-1; 其中randi(imax,m,n)在开区间(0,imax]生成mxn型随机矩阵.