4.6.2 常态乱数
用 MATLAB 函数 randn产生常态乱数,它是以高斯分布在乱数出现的上下限区间。常态乱数其值分布于一区间的特性可以从
其统计密度函数(PDF) 说明。从其 PDF 分布可以看出其每一个乱数值出现的机率皆不相同,靠近中间的乱
数值出现的机率比起两端的值要高,这是一般不规则现象较可能出现的情形,所以它被称为常态乱数。由
于常态乱数并非以上下限来定义,它是用数据的平均值和变异数定义之。因此在产生一常态乱数时,需设
定平均值和变异数的大小。randn(n)和randn(n,m) 是分别产生一矩阵含 nxn个乱数和一矩阵含mxn的常态乱数,
其平均值为0变异数为1。
见以下的例子:
>> x=-2.9:0.2:2.9; % 这个例子用到 hist 函数来画出二种乱数的分布图
>> y=randn(1,5000);
>> hist(y,x)
>> title('Histogram of Normal Random Data')
>> y1=rand(1,5000);
>> hist(y1,x)
>> title('Histogram of Uniform Random
Data')
如果需要产生常态乱数值的平均值和变异数并非0和1,可以采用以下步骤将平均值和变异数做转换。假设要 得到一组常态乱数值的平均值为b和变异数为a,我们先产生一组乱数r,再将其值乘以变异数a。接著再加平 均值b。算式如下
x=a*r + b
其中x代表转换后的乱数值的阵列。请看下列示范:
>>data_2 = randn(1,500)+3 %原乱数值有500个
>>plot(data_2) %这个图是否看来眼熟?
>>axis([1 500 0 6])
>>hist(data_2) %看看其长条图
上一页 下一页 讲义大纲