等待不能正常工作

时间:2016-04-11 19:19:59

标签: matlab

我编写了以下matlab代码来测试最小二乘回归:

x = [1 2 3 4 5 6];
y = [1 4 9 16 25 36];

hold on
scatter(x, y );
hold on
%Linear_regrassion
    n = length(x);
    a = (n*sum(x.*y) - sum(x)*sum(y)) / n*sum(x.^2) - (sum(x))^2
    b = mean(y) - a * mean(x)
%end
x = 1:8;
plot(x, a*x + b);

scatter发表评论时,plot(x, a*x + b);功能正常。它看起来像这样: enter image description here

但是当我添加plot(x, a*x + b);来绘制估计的行时,输出如下所示: enter image description here

我的猜测是我没有使用hold on。我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:5)

您对a的计算是错误的:您需要在a计算的分母中使用括号。但是,hold on效果很好。

x = [1 2 3 4 5 6];
y = [1 4 9 16 25 36];

scatter(x, y,'*');
hold on
%Linear_regrassion
    n = length(x);
    a = (n*sum(x.*y) - sum(x)*sum(y)) / (n*sum(x.^2) - (sum(x))^2)
    b = mean(y) - a * mean(x)
%end
x = 1:8;
plot(x, a*x + b);