分享

Matlab在一个集合中随机取数

 weicat 2011-09-07

function 'randperm', for example:

a=[1 2 3 4 5 6 7 8 9 10];
b=a(randperm(length(a)));
x=b(1:5);

 

matlab生成随机数据

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

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分布等,加上后缀都是相应的概率密度函数,分布函数。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多