matlab 创建正态分布1000个随机数,怎么把随机数分配到500个二维向量中

供稿:hz-xin.com     日期:2025-01-14
怎么用matlab生成1000个近似服从正态分布的随机数,随机数范围是0到1之间

要求随机数范围在0-1之间,均值可取0.5;又由于正态分布99.7%的值在平均数左右三个标准差的范围内,所以标准差取0.5/3。
因为只是要近似服从正态分布,可以考虑把超出边界的少量数据直接放在中间,影响不大:
D=randn(1000,1)/6+0.5;D(D1)=0.5;hist(D,30)

% 产生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(:));

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

可用如下代码:

%产生1000个数
a=randn(1,1000);
%分配
b=reshape(a,500,2)

要么500次循环,要么你直接产生500个随机二维正态向量

matlab 创建正态分布1000个随机数,怎么把随机数分配到500个二维向量中...
a=randn(1,1000);分配 b=reshape(a,500,2)

Matlab 用randn创建1000个服从正态分布的随机数,分布的均值为70,标准差...
hist的第二项是隔的个数,你正态分布最好分隔在10到15组比较好,你分的不对,不是数组。x=0:0.2:7;y=70+3.5.*randn(1000,1);hist(y,10)

matlab 中如何产生0-1上均匀分布的随机数
3、二类分布binornd(N,P,mm,nn),即产生mm*nn均值为N*P的矩阵 4、产生m*n阶离散均匀分布的随机数矩阵:unidrnd(N,mm,nn) 产生一个数值在1-N区间的mm*nn矩阵;5、产生mm nn阶期望值为 的指数分布的随机数矩阵:exprnd ( ,mm, nn)....

matlab能处理多大的矩阵
因为matlab矩阵都是double类型的,一个double是用8个字节,可以用 numel(A)*8\/1024 KB numel(A)*8\/1024\/1024 MB numel(A)*8\/1024\/1024\/1024 GB