嗨我想用正态分布曲线叠加直方图,我得到一个错误:向量必须是相同的长度。
有人可以解释我在这里做的错误吗?
这是我使用的代码:
X = normrnd(1.5,.1,1,1000)
[hy, hx] = hist(X,50);
hy = hy/numel(X)/(hx(2)-hx(1));
bar(hx,hy), colormap(bone);
z=-4:0.1:4;
pdf=(1/(std(X)*sqrt(2*pi)))*exp(-0.5*((X - mean(X))/std(X)).^2);
hold on, plot(z,pdf,'LineWidth',1,'Color','red');
答案 0 :(得分:1)
在此代码中,问题与以下事实有关:vector pdf
的长度= 1000,而vector z
的长度= 81.它们应该具有相同的长度,以便在轴x和y分别。
这里是解决方案:
X = normrnd(1.5,.1,1,1000);
[hy, hx] = hist(X,50);
hy = hy/numel(X)/(hx(2)-hx(1));
figure
bar(hx,hy);
colormap(bone);
z=-4:0.1:4;
pdf=(1/(std(X)*sqrt(2*pi)))*exp(-0.5*((z - mean(X))/std(X)).^2);
hold on;
plot(z,pdf,'LineWidth',1,'Color','red');