原文地址:rand,randi和randn区别作者:白屋顶黑乌鸦1,rand 生成均匀分布的伪随机数.分布在(0~1)之间 主要语法:rand(m,n)生成m行n列的均匀分布的伪随机数 rand(m,n, do ble )生成指定精度的均匀分布的伪随机数,参数还可以是 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型随机矩阵 matlab7.0函数库中没有randi函数,采用时要注意. 其实用matlab7.0实现randi的功能也很简单,下面是我的具体实现,可以参考一下: f nction matrix=randi(n m,a,b) vector=randsample(n m,a*b); matrix=reshape(vector,a,b); end 在调用时还是出现了一点问题,最初写的时候是f nction matrix=randi(n m,[a,b]),总是提示错误,经过很认真的分析才发现原来在调用时矩阵不能写为上述形式,需把[]去掉才可以.