如何解决使用向量的线回归
#include <iostream>
#include <vector>
struct Result
{
double A;
double B;
};
class Regression
{
struct Point
{
double x;
double y;
};
std::vector<Point> points{};
public:
void add(double x,double y)
{
Point const p{x,y};
points.push_back(p);
}
int N = points.size();
double sum_x(std::vector<Point> points)
{
double sum = 0;
for (Point n : points){
sum = sum + n.x;
}
return sum;
}
//and so on for sum_y,sum_xy,sum_x2 (to shorten the question)
double sum_x = sum_x(points);
double sum_y = sum_y(points);
double sum_xy = sum_xy(points);
double sum_x2 = sum_x2(points);
Result fit() const
{
double const d = (N * sum_x2 - sum_x * sum_x);
double const a = (sum_y * sum_x2 - sum_x * sum_xy) / d;
double const b = (N * sum_xy - sum_x * sum_y) / d;
return {a,b};
}
};
嗨,我无法使这段代码工作,对于函数 fit() 中的每个 sum_x、sum_y 等,错误指出“表达式必须具有算术或无作用域枚举类型”。 我对 C++ 真的很陌生,所以如果这是一个微不足道的错误,我深表歉意。 谢谢
解决方法
编译器认为 sum_x is etc. are function,所以用不同的方式命名变量,以便它们可以区分
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。