2013-03-22 224 views
0

有人可以幫助我,因爲我在這段代碼中出現錯誤,我不知道它出錯的地方。我收到以下內容: 錯誤C2059:語法錯誤:'返回', 錯誤C2334:在'{'之前的意外令牌。跳過明顯的功能體, 錯誤C2039:'rtn':不是'corr_coefficient'的成員 請參閱'corr_coefficient'聲明 謝謝。矩陣的相關係數

using namespace std; 

class corr_coefficient 
{ 
    matrix x, y; 
    double sum, C, corr[5]; 
    int j; 
public: 
    double calc_mu(matrix x, int j=0); 
    double calc_covariance(matrix x, matrix y, int j); 
    double calc_correlation(); 
    double StandardDeviation(matrix a, int j=0); 
    double return(int i){return corr[i]; 
    }; 
    corr_coefficient(matrix x, matrix y); 
    }; 

double corr_coefficient::calc_mu(matrix x, int j) 
{ 
    sum=0; 
    for(int i=0; i<C; i++) 
    { 
     sum = sum+x(i,j); 
    } 
    return sum/C; 
} 

double corr_coefficient::calc_covariance(matrix x, matrix y, int j) 
{ 
    double mux=calc_mu(x,0); 
    double muy=calc_mu(y,j); 
    sum=0; 
    for (int i=0; i<C; i++) 
    { 
     sum=sum+(x(i,0)-mux)*(y(i,j)-muy); 
    } 
    return sum/(C-1); 
} 
double corr_coefficient::StandardDeviation(matrix a, int j) 

{ 
    double mua=calc_mu(a,j); 

    sum=0; 
    for (int i=0; i<C; i++) 
    { 
     sum=sum+((a(i,j))-mua)*((a(i,j))-mua); 
    } 
    return sqrt(sum/(C-1)); 
} 
corr_coefficient::corr_coefficient(matrix x, matrix y) 
{ 
    C=35; 
    for (int j=0; j<5; j++) 
    { 
     corr[j]=calc_covariance(x, y, j)/(StandardDeviation(x, 0)*StandardDeviation(y, j)); 
    } 
} 

回答

3
double return(int i){return corr[i]; 
}; 

return是一個關鍵字。您不能使用名爲return的函數。把它叫做不同的東西吧。也許operator[]是一個適當的運算符來重載在這裏?

double operator[](int i){ return corr[i]; } 
+0

謝謝,解決了一些錯誤。 – Sahana 2013-03-22 20:05:15