MATLAB错误:向量必须长度相同

时间:2015-10-18 21:34:44

标签: matlab histogram normalization normal-distribution best-fit-curve

嗨我想用正态分布曲线叠加直方图,我得到一个错误:向量必须是相同的长度。

有人可以解释我在这里做的错误吗?

这是我使用的代码:

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

1 个答案:

答案 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');

enter image description here