|
아래 코드를 참조해주시구요,
Matrix < double > 코드는 TNT에서 가져온 코드네요
문제가 2차원 배열들인 ** priErrVar, **tmatOpr를 함수에서 읽지 못한다는 거에요...
분명히 인수로 넘겨 줬는데요 인식을 못해요 .ㅠㅠ
해답좀 알려주세요!!!!!
처음 matmult 아래와 같은 에러가 생기네요..
[BCC32 Error] write.cpp(574): E2285 Could not find a match for 'matmult<T>(double * *,double * *)'
//------------------------------------------------------------------------------------------
void kalmanGain( double **kalman, double **priErrVar, double **matOpr, double **tmatOpr, double **msrErrCov, int num_x, int num_y ) { Matrix < double > tmp1( num_x * num_y + 3, 3 ); Matrix < double > tmp2( 3, 3 );
tmp1 = matmult( priErrVar, tmatOpr ); tmp2 = matmult( matmult( matOpr, priErrVar ), tmatOpr );
Array2D < double > tmp22( 3, 3 ); Array2D < double > tmp222( 3, 3 ); Array2D < double > identity( 3, 3 );
//trick for ( int j = 0; j < 3; j ++ ){ for ( int i = 0; i < 3; i ++ ){ tmp22[ i ][ j ] = tmp2[ i ][ j ] + msrErrCov[ i ][ j ]; } }
for ( int j = 0; j < 3; j ++ ){ for ( int i = 0; i < 3; i ++ ){ identity[ i ][ j ] = 0.0; identity[ i ][ i ] = 1.0; }
}
LU < double > ObjLU( tmp22 ); tmp222 = ObjLU.solve( identity );
for ( int j = 0; j < 3; j ++ ){ for ( int i = 0; i < 3; i ++ ){ tmp2[ i ][ j ] = tmp222[ i ][ j ]; } }
kalman = matmult( tmp1, tmp2 );
}
|