0

嗨,我正在尝试用正态分布曲线覆盖直方图,但出现错误:向量必须具有相同的长度。

谁能解释我在这里犯了什么错误?

这是我使用的代码:

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');
4

1 回答 1

1

在此代码中,问题与以下事实有关:向量pdf的长度 = 1000,而向量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');

在此处输入图像描述

于 2015-10-18T21:39:35.413 回答