matlab生成随机数据

 

matlab本身提供很多的函数来生成各种各样的随机数据:

 

rand(n):生成0到1之间的n阶随机数方阵 rand(m,n):生成0到1之间的m×n的随机数矩阵 (现成的函数)

另外:

Matlab随机数生成函数

betarnd 贝塔分布的随机数生成器

binornd 二项分布的随机数生成器

chi2rnd 卡方分布的随机数生成器

exprnd 指数分布的随机数生成器

frnd f分布的随机数生成器

gamrnd 伽玛分布的随机数生成器

geornd 几何分布的随机数生成器

hygernd 超几何分布的随机数生成器

lognrnd 对数正态分布的随机数生成器

nbinrnd 负二项分布的随机数生成器

ncfrnd 非中心f分布的随机数生成器

nctrnd 非中心t分布的随机数生成器

ncx2rnd 非中心卡方分布的随机数生成器

normrnd 正态(高斯)分布的随机数生成器

poissrnd 泊松分布的随机数生成器

raylrnd 瑞利分布的随机数生成器

trnd 学生氏t分布的随机数生成器

unidrnd 离散均匀分布的随机数生成器

unifrnd 连续均匀分布的随机数生成器

weibrnd 威布尔分布的随机数生成器

 

normrnd 可以生成一定均值和标准差的正态分布

gamrnd 可以生成gamma分布的伪随机数矩阵

chi2rnd 可以生成卡方分布的伪随机数矩阵

trnd 可以生成t分布的伪随机数矩阵

frnd 可以生成f分布的伪随机数矩阵

raylrnd   可以生成rayleigh分布的伪随机数矩阵

关于具体的函数语法,你可以在matlab中用help命令得到更详细的说明。

我要说的是,这些生成的伪随机矩阵的标准差,均值等都是和你给的具体数据很接近的,但是,不是一样啊。也就是说matlab生成的伪随机矩阵不是一定准确的,只能是很接近的。另外,要明白什么是伪随机数。

随机数的生成通常有两种方法:一是依赖一些专用的电子元件发出随机信号,这种方法又称为物理生成法。另一类就是通过数学的算法,仿照随机数发生的规律计算出随机数,由于产生的随机数是有数学公式计算出来的,所以这类随机数又称为伪随机数。

你也可以让matlab生成一个随机的正态分布矩阵,然后用normstat来求得生成矩阵的真实方差和矩阵。其实matlab中求均值和方差的函数都是以*stat结尾的。比如上面的求正态分布的normstat,求gam分布的均值和方差的gamstat,求rayleigh分布的均值和方差的raylstat等。同样的,还有以*pdf结尾的都是函数的概率密度,以*cdf结尾的函数是分布函数,以inv结尾的函数为逆分布函数求解函数。比如,正态分布的概率密度normpdf,正态分布的分布函数normcdf,正态分布的逆分布函数求解函数为norminv。同样道理的还有possion分布,gamma分布,卡方分布,T分布,F分布,rayleigh分布等,加上后缀都是相应的概率密度函数,分布函数。

你可能感兴趣的:(算法,matlab)