例4.1 使用均匀随机数生成具有规定发布的随机数
matlab实现代码:
x=rand(1,1000); % 产生随机数x~U (0,1)
y=sqrt(-8.*log(1-x)); % 产生服从2
M=80; % 设置划分y 值的统计区间数目
[N,Y]=hist(y,M); % 统计落入每个区间的次数赋值给N ,区间坐标赋值给Y
N=N/1000/((max(y)-min(y))/M); % 由统计的区间内次数求PDF
bar(Y,N); % 绘制PDF 直方图
title(‘随机数y 的PDF 估计’);
ylabel(‘p(x)’);
xlabel(‘y’);
例4.2 使用数imnoise2所生成的直方图:
matlab实现:
r = imnoise2(‘gaussian’,100000,1,0,1);
hist(r,50)
%r = imnoise2(‘gaussian’,100000,1,0,1);
%hist(r,50)
%以下显示所有类型的直方图,没有赋值的取默认值
R=imnoise2(‘gaussian’,100000,1,0,1);
subplot(3,2,1),hist(R,50),title(‘高斯’)%用hist显示直方图
R=imnoise2(‘salt & pepper’,100000,10);
subplot(3,2,2),hist(R,50),title(‘焦盐’)
R=imnoise2(‘lognormal’,100000,10);
subplot(3,2,3),hist(R,50),title(‘对数正态’)
R=imnoise2(‘rayleigh’,100000,1);
subplot(3,2,4),hist(R,50),title(‘瑞利’)
R=imnoise2(‘exponential’,100000,1);
subplot(3,2,5),hist(R,50),title(‘指数’)
R=imnoise2(‘erlan