Buongiorno a tutti!
Ho un problema con una funzione e il suo valore di ritorno. Vorrei che la funzione restituisse una matrice 3x3.
Questo è ciò che ho scritto:
codice:
double **Covarianza (int N_campioni , double **colonna , double *mu)
{
double sigma[3][3] = { 0,0,0,0,0,0,0,0,0 };
double parz[3][3] = { 0,0,0,0,0,0,0,0,0 };
for ( int j=0 ; j < N_campioni ; j++ )
{
for ( int i=0 ; i < 3 ; i++ )
colonna[j][i] = colonna[j][i] - mu[i];
for ( int m=0 ; m < 3; m++ ) // prodotto vettore colonna per se stesso trasposto
for ( int n=0 ; n < 3 ; n++ )
parz[m][n] = colonna[j][m] * colonna[j][n];
for ( int g=0 ; g < 3 ; g++) // aggiorno sigma con le matrici dei risultati parziali
for ( int h=0 ; h < 3 ; h++ )
sigma[g][h] = sigma[g][h] + parz[g][h];
}
for ( int m=0 ; m < 3; m++ )
for ( int n=0 ; n < 3 ; n++ )
sigma[m][n] = sigma[m][n] / N_campioni;
return sigma;
}
il compilatore segnala l' incompatibilità tra il tipo del valore di ritorno e il tipo della funzione.
Qualcuno potrebbe spiegarmi come modificare la funzione?
Grazie a tutti!