matlab产生符合正态分布的随机数

2024-05-07 12:04

1. matlab产生符合正态分布的随机数

我是这样理解的:
normrnd([1 2 3;4 5 6],0.1,2,3)产生一个所有元素符合正态分布的2行3列随机矩阵。
[1 2 3;4 5 6]为各分量的均值,0.1为所有分量的方差;后面的2,3与[1 2 3;4 5 6]维数对应。

matlab产生符合正态分布的随机数

2. matlab得到标准正态分布的随机数

% 产生0~1均匀分布
m=1000;n=10;
u=rand(m,n);

% 产生a~b均匀分布
a=-1;b=1;
x=a+(b-a)*u;

% 正态分布函数的逆是求不出来的
% 只能通过瑞利分布产生
% 产生时需要两个0~1均匀分布,所以需新定义v
sigma=1;mu=0;
v=rand(size(u));
z=sqrt(2*sigma^2*log(1./(1-u))).*cos(2*pi*v);

% 利用上述标准正态分布产生普通的正态分布
sigma=3;mu=2;
z=randn(1000,10);
x=mu+z*sigma;

% 产生对数正态分布
x=exp(x);

你可以!!分别!!在每段后边加上(每一段的后边加一个,一一对应~):
ksdensity(u(:));
ksdensity(x(:));
ksdensity(z(:));
ksdensity(x(:));
ksdensity(x(:));

来看概率密度函数。 我不敢上传图片,因为那样百度就给我把整个回答屏蔽掉了~

3. matlab如何编程产生正态分布的随机数的程序?

可以采用Box_Muller的方法。
Box-Muller方法是以两组独立的随机数U和V,这两组数在(0,1]上均匀分布,用U和V生成两组独立的标准常态分布随机变量X和Y
x=sqrt((-2)*ln(U))*cos(2*pi*V);  
Y=sqrt((-2)*ln(U))*sin(2*pi*V);  

matlab 程序
function Norm_Distribution_Box_Mullerclear all;clc;%清屏 m=input('请输入平均值:');n=input('请输入标准差:'); t=input('请输入数据长度:'); %产生正态分布的随机数 for i=1:t        a=rand;         b=rand;         X1(i)=sqrt((-2)*log(a))*cos(2*pi*b);        X2(i)=sqrt((-2)*log(a))*sin(2*pi*b);       Y1=X1*n+m;        Y2=X2*n+m; enddisp(Y1); %求平均值和标准差M1=mean(Y1); N1=std(Y1); disp(M1); disp(N1); disp(Y1); %求平均值和标准差 M2=mean(Y2); N2=std(Y2); disp(M2); disp(N2);  %将数据写入文本文件  fid=fopen('xiefei1.dat','w'); Z1=Y1;  fprintf(fid,'%f\t',Z1);fclose(fid); %将数据写入文本文件 fid=fopen('xiefei2.dat','w'); Z2=Y2; fprintf(fid,'%f\t',Z2); fclose(fid); %绘图 subplot(2,1,1); histfit(Y1);xlabel('随机数'); ylabel('出现的次数'); %绘图subplot(2,1,2);histfit(Y2);xlabel('随机数');ylabel('出现的次数');%检验 h1=lillietest(Y1);%若结果h1为1,则说明零假设不成立,拒绝零假设;否则,结果为0,零假设成立,即原分布为正态分布disp(h1);h2=lillietest(Y2);%若结果h2为1,则说明零假设不成立,拒绝零假设;否则,结果为0,零假设成立,即原分布为正态分布 disp(h2);

matlab如何编程产生正态分布的随机数的程序?

4. matlab生成正态分布随机数报错

你需要先定义a为200*200的矩阵,可以先赋初值为0。可以通过命令a=zeros(200,200)实现。
修改后的程序如下:

a=zeros(200,200);
for i=1:200
    a(i,:)=normrnd(30,10,1,200);
end

5. matlab如何生成正态分布

randn 产生标准正态分布 N(0,1)
如果你想生成均值为a,方差为b的非标准正态分布N(a,b),则为:a+b*randn(m,n)。其中:m为行数,n为列数。

 lognrnd 产生对数正态分布随机数 
mvnrnd 产生多元正态分布随机数

matlab如何生成正态分布

6. 怎么用matlab生成100个标准正态分布的随机数并画出直方图

要返回100个在[0 1]上的正态随机数就不能那么做了
可以建立索需要的分布函数,例如这里用标准正态分布函数
function y=Nf(x)
y=exp(-x.^2/2)/sqrt(2*pi);
end

然后在命令行输入
R=rand(100,1)
N=Nf(R)即可
至于绘图
plot(R,N,'.')

7. 求帮忙 谢谢 谁知道在C/C++里怎么生成正态分布的随机数啊 就是matlab里的randn() 求大神指导啊 谢谢

#include default_random_engine gen;normal_distribution randn(mu, sigma);double t = randn(gen);具体详见random库的normal_distribution类。

求帮忙 谢谢 谁知道在C/C++里怎么生成正态分布的随机数啊 就是matlab里的randn() 求大神指导啊 谢谢

8. matlab 如何生成一组正随机数

abs(randn(1,100));