btcq.net
当前位置:首页 >> 用mAtlAB如何产生服从N(0,1)的数 >>

用mAtlAB如何产生服从N(0,1)的数

楼上说得都不对,rand生成的是均匀分布的随机数 randn才是生成正态分布的随机数

s=randn(1,n),n为随机白噪声序列的长度rand(m,n):产生(0,1)均匀分布的m*n随机数矩阵如果要产生指定方差和均值的随机数设某个随机变量x均值为mu,方差为var^2,若要产生同样分布的随机变量y,但使新的随机变量参数改变,均值为mu_1,方差为var_1^2,可以用如下公式进行变换:y=var_1/var*(x-mu)+mu_1,其中x为随机变量,其余为常数(原分布参数).具体到正态分布,若要产生均值为u,方差为o^2的m*n的随机数矩阵,可以用y=o*randn(m,n)+u得到.对于均匀分布,若要产生[a,b]区间的均匀分布的m*n的随机数矩阵,则可以用y=rand(m,n)*(b-a)+a得到.

用randint(1,10)如下:ans = 1 0 1 0 1 1 0 0 1 0 也可用:int8(rand(1,10)) ans = 1 0 1 1 0 1 1 0 1 1

例子: >> rand(1,6) % 第一次使用随机数产生器 ans = 0.2190 0.0470 0.6789 0.6793 0.9347 0.3835 >>hist(ans) % 看看长条图的长相 >>plot(ans) % 比较上个图与这个图有何差异?何者能代表不规则数据的分布 >> rand(1,6) % 第二次使用随机数产生器,注意每次产生的随机数值皆不同!

在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

用Matlab的rand()和unidrnd()产生服从均匀分布的一组随机数 rand(m,n)产生m行n列的【0,1】均匀分布随机数 unidrnd(N,m,n)产生m行n列的数值小于N的【0,N】均匀分布随机数

rand函数 A=rand(M,N) 该函数产生一个大小M*N的数组,数组的元素为在区间(0,1)内均匀分布的数

m=n=a = randn(m,n)b = sum(a,1)for i=1:ma(i,:) = a(i,:)*b(i,1)end 试试 我不确定

二楼说的有误.rand[X,Y]的参数X,Y是生成一个X乘Y的矩阵,里面都是随机数,范围从0到1(而不是只有0和1!).这里用[]和()都可以,没有区别的.为了生成“只有0和1”的随机数组需要在rand之外再做处理.具体方法:1.按照一楼的写法就可以.首先生成随机数,然后判断是否>0.5,也就是0.5以下的赋值为0,0.5以上的赋值为1.2.或者X=ceil(rand(N,1)-0.5)也可以.ceil命令的意思是“改变值为正向的最近的整数”.其他详细内容请参见 help rand

matlab函数randn:产生正态分布的随机数或矩阵的函数randn产生均值为0,方差 σ^2 = 1,标准差σ = 1的正态分布的随机数或矩阵的函数.用法:Y = randn(n)返回一个n*n的随机项的矩阵.如果n不是个数量,将返回错误信息.Y = randn(m,n) 或 Y = randn([m n])返回一个m*n的随机项矩阵.Y = randn(m,n,p,) 或 Y = randn([m n p])产生随机数组.

krfs.net | 9213.net | prpk.net | ppcq.net | acpcw.com | 网站首页 | 网站地图
All rights reserved Powered by www.btcq.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com