MATLAB error: Vectors must be the same length
MATLAB error: Vectors must be the same length
您好,我正在尝试将直方图与正态分布曲线叠加,但出现错误:向量长度必须相同。
任何人都可以解释我在这里犯了什么错误吗?
这是我使用的代码:
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');
在此代码中,问题与以下事实有关:向量 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');
您好,我正在尝试将直方图与正态分布曲线叠加,但出现错误:向量长度必须相同。
任何人都可以解释我在这里犯了什么错误吗?
这是我使用的代码:
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');
在此代码中,问题与以下事实有关:向量 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');