2017-07-17 82 views
-1

我是C++的初學者,我正在製作關於線性迴歸的代碼。 首先,我做了一個關於單變量線性迴歸的代碼,它有一個x和一個y變量, ,現在我正在將該代碼更改爲多個線性迴歸,它具有多於2個x和一個y。 它是犯錯誤,但我找不到原因。C++:爲什麼這段代碼會出錯?多線性迴歸

我不會在這裏寫頭文件。請認爲標題沒有錯誤。 和原始代碼沒有任何錯誤。

原代碼:

double LinearRegression::predict(double x) 
{ 
    return this->h(x); 
} 


double LinearRegression::h(double x) 
{ 
    return this->w * x + this->b; 
} 

代碼有關多個變量:

double LinearRegression::predict(double x, int index) 
{ 
    return this->h(x, index); 
} 


double LinearRegression::h(double x, int index) 
{ 
    double sum = 0; 

    // return this->w * x + this->b; 
    for (int i = 0; i < this->multi_num; i++) { 
     sum += this->w[i] * x[i][index]; // here x is making error 
    } 
    sum += this->b; 

    return sum; 
} 
+4

你得到的錯誤是什麼?另外,'x'的類型是什麼?它是二維數組嗎?它看起來不像。 – NathanOliver

+0

是的,它是二維數組。例如 x [] = {{1,2,3},{4,5,6},{7,8,9}}; y [] = {1,2,3}; 二維數組的內容是雙倍的。 – June

+3

'double LinearRegression :: h(double x,int index)'表示它是一個double而不是一個數組。 – NathanOliver

回答

1

,我認爲你應該通過double** x作爲參數,以多元線性迴歸的情況下predicth方法。目前,您正試圖將單個雙精度操作爲二維數組,甚至無法編譯。

+1

現在感謝它的工作。我發現我還不習慣指針... – June