📄 lda3.c
字号:
fprintf(f, "%f, ", LDAFea8[i].mean[0]); fprintf(f, "%f, ", LDAFea8[i].mean[1]); fprintf(f, "%f, ", LDAFea8[i].mean[2]); fprintf(f, "%f, ", LDAFea8[i].std[0]); fprintf(f, "%f, ", LDAFea8[i].std[1]); fprintf(f, "%f, ", LDAFea8[i].std[2]); fprintf(f, "%f, ", LDAFea8[i].corrcoef[0]); fprintf(f, "%f, ", LDAFea8[i].corrcoef[1]); fprintf(f, "%f, ", LDAFea8[i].corrcoef[2]); fprintf(f, "%f, ", LDAFea8[i].mad[0]); fprintf(f, "%f, ", LDAFea8[i].mad[1]); fprintf(f, "%f, ", LDAFea8[i].mad[2]); fprintf(f, "%f, ", LDAFea8[i].rms[0]); fprintf(f, "%f, ", LDAFea8[i].rms[1]); fprintf(f, "%f, ", LDAFea8[i].rms[2]); fprintf(f, "%f, ", LDAFea8[i].var[0]); fprintf(f, "%f, ", LDAFea8[i].var[1]); fprintf(f, "%f\n", LDAFea8[i].var[2]); } /*gsl_matrix **/W = gsl_matrix_alloc (7, 18); /*gsl_matrix_complex **/W_pre = gsl_matrix_complex_alloc (18, 18); W_pre = lda( LDAFea1, LDAFea2, LDAFea3, LDAFea4, LDAFea5, LDAFea6, LDAFea7, LDAFea8 ); for (i = 0; i < 18; i++)
{ //gsl_complex eval_i = gsl_vector_complex_get (eval, i);
gsl_vector_complex_view W_i = gsl_matrix_complex_column (W_pre, i);
//printf ("eigenvalue = %g + %gi\n", GSL_REAL(eval_i), GSL_IMAG(eval_i));
printf ("eigenvector %d= \n", i);
for (j = 0; j < 18; ++j)
{ gsl_complex z = gsl_vector_complex_get(&W_i.vector, j);
printf("%g + %gi\n", GSL_REAL(z), GSL_IMAG(z)); if(i < 7) { gsl_matrix_set (W, i, j, GSL_REAL(z)/*gsl_complex_abs (z)*/); }
}
} for(i=0;i<18;i++) { for(j=0;j<7;j++) { printf("%f ", gsl_matrix_get (W, j, i)); fprintf(file_W, "%f ", gsl_matrix_get (W, j, i)); } fprintf(file_W, "\n"); fprintf(file_W, "\n"); printf("\n"); }
}gsl_matrix_complex* lda( featurePtr LDAFea1, featurePtr LDAFea2, featurePtr LDAFea3, featurePtr LDAFea4, featurePtr LDAFea5, featurePtr LDAFea6, featurePtr LDAFea7, featurePtr LDAFea8 ){ int i, j, k; int sign = 1; FILE *mean_1, *mean_2, *mean_3, *mean_4, *mean_5, *mean_6, *mean_7, *mean_8; FILE *sw_1, *sw_2, *sw_3, *sw_4, *sw_5, *sw_6, *sw_7, *sw_8; mean_1 = fopen ("mean_1.txt", "w+"); mean_2 = fopen ("mean_2.txt", "w+"); mean_3 = fopen ("mean_3.txt", "w+"); mean_4 = fopen ("mean_4.txt", "w+"); mean_5 = fopen ("mean_5.txt", "w+"); mean_6 = fopen ("mean_6.txt", "w+"); mean_7 = fopen ("mean_7.txt", "w+"); mean_8 = fopen ("mean_8.txt", "w+"); sw_1 = fopen ("sw_1.txt", "w+"); sw_2 = fopen ("sw_2.txt", "w+"); sw_3 = fopen ("sw_3.txt", "w+"); sw_4 = fopen ("sw_4.txt", "w+"); sw_5 = fopen ("sw_5.txt", "w+"); sw_6 = fopen ("sw_6.txt", "w+"); sw_7 = fopen ("sw_7.txt", "w+"); sw_8 = fopen ("sw_8.txt", "w+");/* class1 */ matrixPtr class1; matrixPtr class2; matrixPtr class3; matrixPtr class4; matrixPtr class5; matrixPtr class6; matrixPtr class7; matrixPtr class8; matrixPtr class1_T; matrixPtr class2_T; matrixPtr class3_T; matrixPtr class4_T; matrixPtr class5_T; matrixPtr class6_T; matrixPtr class7_T; matrixPtr class8_T; matrixPtr class1_mul; matrixPtr class2_mul; matrixPtr class3_mul; matrixPtr class4_mul; matrixPtr class5_mul; matrixPtr class6_mul; matrixPtr class7_mul; matrixPtr class8_mul; matrixPtr class1_sw; matrixPtr class2_sw; matrixPtr class3_sw; matrixPtr class4_sw; matrixPtr class5_sw; matrixPtr class6_sw; matrixPtr class7_sw; matrixPtr class8_sw; matrixPtr m_sw; matrixPtr class1_sb; matrixPtr class2_sb; matrixPtr class3_sb; matrixPtr class4_sb; matrixPtr class5_sb; matrixPtr class6_sb; matrixPtr class7_sb; matrixPtr class8_sb; matrixPtr m_sb; class1 = malloc( lda_sample*sizeof( matrix ) ); class2 = malloc( lda_sample*sizeof( matrix ) ); class3 = malloc( lda_sample*sizeof( matrix ) ); class4 = malloc( lda_sample*sizeof( matrix ) ); class5 = malloc( lda_sample*sizeof( matrix ) ); class6 = malloc( lda_sample*sizeof( matrix ) ); class7 = malloc( lda_sample*sizeof( matrix ) ); class8 = malloc( lda_sample*sizeof( matrix ) ); class1_T = malloc( lda_sample*sizeof( matrix ) ); class2_T = malloc( lda_sample*sizeof( matrix ) ); class3_T = malloc( lda_sample*sizeof( matrix ) ); class4_T = malloc( lda_sample*sizeof( matrix ) ); class5_T = malloc( lda_sample*sizeof( matrix ) ); class6_T = malloc( lda_sample*sizeof( matrix ) ); class7_T = malloc( lda_sample*sizeof( matrix ) ); class8_T = malloc( lda_sample*sizeof( matrix ) ); class1_mul = malloc( lda_sample*sizeof( matrix ) ); class2_mul = malloc( lda_sample*sizeof( matrix ) ); class3_mul = malloc( lda_sample*sizeof( matrix ) ); class4_mul = malloc( lda_sample*sizeof( matrix ) ); class5_mul = malloc( lda_sample*sizeof( matrix ) ); class6_mul = malloc( lda_sample*sizeof( matrix ) ); class7_mul = malloc( lda_sample*sizeof( matrix ) ); class8_mul = malloc( lda_sample*sizeof( matrix ) ); class1_sw = malloc( sizeof( matrix ) ); class2_sw = malloc( sizeof( matrix ) ); class3_sw = malloc( sizeof( matrix ) ); class4_sw = malloc( sizeof( matrix ) ); class5_sw = malloc( sizeof( matrix ) ); class6_sw = malloc( sizeof( matrix ) ); class7_sw = malloc( sizeof( matrix ) ); class8_sw = malloc( sizeof( matrix ) ); m_sw = malloc( sizeof( matrix ) ); class1_sb = malloc( sizeof( matrix ) ); class2_sb = malloc( sizeof( matrix ) ); class3_sb = malloc( sizeof( matrix ) ); class4_sb = malloc( sizeof( matrix ) ); class5_sb = malloc( sizeof( matrix ) ); class6_sb = malloc( sizeof( matrix ) ); class7_sb = malloc( sizeof( matrix ) ); class8_sb = malloc( sizeof( matrix ) ); m_sb = malloc( sizeof( matrix ) ); for( i=0;i<lda_sample;i++ ) { class1[i].m = gsl_matrix_alloc(sample_dim, 1); class2[i].m = gsl_matrix_alloc(sample_dim, 1); class3[i].m = gsl_matrix_alloc(sample_dim, 1); class4[i].m = gsl_matrix_alloc(sample_dim, 1); class5[i].m = gsl_matrix_alloc(sample_dim, 1); class6[i].m = gsl_matrix_alloc(sample_dim, 1); class7[i].m = gsl_matrix_alloc(sample_dim, 1); class8[i].m = gsl_matrix_alloc(sample_dim, 1); } for( i=0;i<lda_sample;i++ ) { gsl_matrix_set (class1[i].m, 0, 0, LDAFea1[i].mean[0]); gsl_matrix_set (class1[i].m, 1, 0, LDAFea1[i].mean[1]); gsl_matrix_set (class1[i].m, 2, 0, LDAFea1[i].mean[2]); gsl_matrix_set (class1[i].m, 3, 0, LDAFea1[i].std[0]); gsl_matrix_set (class1[i].m, 4, 0, LDAFea1[i].std[1]); gsl_matrix_set (class1[i].m, 5, 0, LDAFea1[i].std[2]); gsl_matrix_set (class1[i].m, 6, 0, LDAFea1[i].corrcoef[0]); gsl_matrix_set (class1[i].m, 7, 0, LDAFea1[i].corrcoef[1]); gsl_matrix_set (class1[i].m, 8, 0, LDAFea1[i].corrcoef[2]); gsl_matrix_set (class1[i].m, 9, 0, LDAFea1[i].mad[0]); gsl_matrix_set (class1[i].m, 10, 0, LDAFea1[i].mad[1]); gsl_matrix_set (class1[i].m, 11, 0, LDAFea1[i].mad[2]); gsl_matrix_set (class1[i].m, 12, 0, LDAFea1[i].rms[0]); gsl_matrix_set (class1[i].m, 13, 0, LDAFea1[i].rms[1]); gsl_matrix_set (class1[i].m, 14, 0, LDAFea1[i].rms[2]); gsl_matrix_set (class1[i].m, 15, 0, LDAFea1[i].var[0]); gsl_matrix_set (class1[i].m, 16, 0, LDAFea1[i].var[1]); gsl_matrix_set (class1[i].m, 17, 0, LDAFea1[i].var[2]); gsl_matrix_set (class2[i].m, 0, 0, LDAFea2[i].mean[0]); gsl_matrix_set (class2[i].m, 1, 0, LDAFea2[i].mean[1]); gsl_matrix_set (class2[i].m, 2, 0, LDAFea2[i].mean[2]); gsl_matrix_set (class2[i].m, 3, 0, LDAFea2[i].std[0]); gsl_matrix_set (class2[i].m, 4, 0, LDAFea2[i].std[1]); gsl_matrix_set (class2[i].m, 5, 0, LDAFea2[i].std[2]); gsl_matrix_set (class2[i].m, 6, 0, LDAFea2[i].corrcoef[0]); gsl_matrix_set (class2[i].m, 7, 0, LDAFea2[i].corrcoef[1]); gsl_matrix_set (class2[i].m, 8, 0, LDAFea2[i].corrcoef[2]); gsl_matrix_set (class2[i].m, 9, 0, LDAFea2[i].mad[0]); gsl_matrix_set (class2[i].m, 10, 0, LDAFea2[i].mad[1]); gsl_matrix_set (class2[i].m, 11, 0, LDAFea2[i].mad[2]); gsl_matrix_set (class2[i].m, 12, 0, LDAFea2[i].rms[0]); gsl_matrix_set (class2[i].m, 13, 0, LDAFea2[i].rms[1]); gsl_matrix_set (class2[i].m, 14, 0, LDAFea2[i].rms[2]); gsl_matrix_set (class2[i].m, 15, 0, LDAFea2[i].var[0]); gsl_matrix_set (class2[i].m, 16, 0, LDAFea2[i].var[1]); gsl_matrix_set (class2[i].m, 17, 0, LDAFea2[i].var[2]); gsl_matrix_set (class3[i].m, 0, 0, LDAFea3[i].mean[0]); gsl_matrix_set (class3[i].m, 1, 0, LDAFea3[i].mean[1]); gsl_matrix_set (class3[i].m, 2, 0, LDAFea3[i].mean[2]); gsl_matrix_set (class3[i].m, 3, 0, LDAFea3[i].std[0]); gsl_matrix_set (class3[i].m, 4, 0, LDAFea3[i].std[1]); gsl_matrix_set (class3[i].m, 5, 0, LDAFea3[i].std[2]); gsl_matrix_set (class3[i].m, 6, 0, LDAFea3[i].corrcoef[0]); gsl_matrix_set (class3[i].m, 7, 0, LDAFea3[i].corrcoef[1]); gsl_matrix_set (class3[i].m, 8, 0, LDAFea3[i].corrcoef[2]); gsl_matrix_set (class3[i].m, 9, 0, LDAFea3[i].mad[0]); gsl_matrix_set (class3[i].m, 10, 0, LDAFea3[i].mad[1]); gsl_matrix_set (class3[i].m, 11, 0, LDAFea3[i].mad[2]); gsl_matrix_set (class3[i].m, 12, 0, LDAFea3[i].rms[0]); gsl_matrix_set (class3[i].m, 13, 0, LDAFea3[i].rms[1]); gsl_matrix_set (class3[i].m, 14, 0, LDAFea3[i].rms[2]); gsl_matrix_set (class3[i].m, 15, 0, LDAFea3[i].var[0]); gsl_matrix_set (class3[i].m, 16, 0, LDAFea3[i].var[1]); gsl_matrix_set (class3[i].m, 17, 0, LDAFea3[i].var[2]); gsl_matrix_set (class4[i].m, 0, 0, LDAFea4[i].mean[0]); gsl_matrix_set (class4[i].m, 1, 0, LDAFea4[i].mean[1]); gsl_matrix_set (class4[i].m, 2, 0, LDAFea4[i].mean[2]); gsl_matrix_set (class4[i].m, 3, 0, LDAFea4[i].std[0]); gsl_matrix_set (class4[i].m, 4, 0, LDAFea4[i].std[1]); gsl_matrix_set (class4[i].m, 5, 0, LDAFea4[i].std[2]); gsl_matrix_set (class4[i].m, 6, 0, LDAFea4[i].corrcoef[0]); gsl_matrix_set (class4[i].m, 7, 0, LDAFea4[i].corrcoef[1]); gsl_matrix_set (class4[i].m, 8, 0, LDAFea4[i].corrcoef[2]); gsl_matrix_set (class4[i].m, 9, 0, LDAFea4[i].mad[0]); gsl_matrix_set (class4[i].m, 10, 0, LDAFea4[i].mad[1]); gsl_matrix_set (class4[i].m, 11, 0, LDAFea4[i].mad[2]); gsl_matrix_set (class4[i].m, 12, 0, LDAFea4[i].rms[0]); gsl_matrix_set (class4[i].m, 13, 0, LDAFea4[i].rms[1]); gsl_matrix_set (class4[i].m, 14, 0, LDAFea4[i].rms[2]); gsl_matrix_set (class4[i].m, 15, 0, LDAFea4[i].var[0]); gsl_matrix_set (class4[i].m, 16, 0, LDAFea4[i].var[1]); gsl_matrix_set (class4[i].m, 17, 0, LDAFea4[i].var[2]); gsl_matrix_set (class5[i].m, 0, 0, LDAFea5[i].mean[0]); gsl_matrix_set (class5[i].m, 1, 0, LDAFea5[i].mean[1]); gsl_matrix_set (class5[i].m, 2, 0, LDAFea5[i].mean[2]); gsl_matrix_set (class5[i].m, 3, 0, LDAFea5[i].std[0]); gsl_matrix_set (class5[i].m, 4, 0, LDAFea5[i].std[1]); gsl_matrix_set (class5[i].m, 5, 0, LDAFea5[i].std[2]); gsl_matrix_set (class5[i].m, 6, 0, LDAFea5[i].corrcoef[0]); gsl_matrix_set (class5[i].m, 7, 0, LDAFea5[i].corrcoef[1]); gsl_matrix_set (class5[i].m, 8, 0, LDAFea5[i].corrcoef[2]); gsl_matrix_set (class5[i].m, 9, 0, LDAFea5[i].mad[0]); gsl_matrix_set (class5[i].m, 10, 0, LDAFea5[i].mad[1]); gsl_matrix_set (class5[i].m, 11, 0, LDAFea5[i].mad[2]); gsl_matrix_set (class5[i].m, 12, 0, LDAFea5[i].rms[0]); gsl_matrix_set (class5[i].m, 13, 0, LDAFea5[i].rms[1]); gsl_matrix_set (class5[i].m, 14, 0, LDAFea5[i].rms[2]); gsl_matrix_set (class5[i].m, 15, 0, LDAFea5[i].var[0]); gsl_matrix_set (class5[i].m, 16, 0, LDAFea5[i].var[1]); gsl_matrix_set (class5[i].m, 17, 0, LDAFea5[i].var[2]); gsl_matrix_set (class6[i].m, 0, 0, LDAFea6[i].mean[0]); gsl_matrix_set (class6[i].m, 1, 0, LDAFea6[i].mean[1]); gsl_matrix_set (class6[i].m, 2, 0, LDAFea6[i].mean[2]); gsl_matrix_set (class6[i].m, 3, 0, LDAFea6[i].std[0]); gsl_matrix_set (class6[i].m, 4, 0, LDAFea6[i].std[1]); gsl_matrix_set (class6[i].m, 5, 0, LDAFea6[i].std[2]); gsl_matrix_set (class6[i].m, 6, 0, LDAFea6[i].corrcoef[0]); gsl_matrix_set (class6[i].m, 7, 0, LDAFea6[i].corrcoef[1]); gsl_matrix_set (class6[i].m, 8, 0, LDAFea6[i].corrcoef[2]); gsl_matrix_set (class6[i].m, 9, 0, LDAFea6[i].mad[0]); gsl_matrix_set (class6[i].m, 10, 0, LDAFea6[i].mad[1]); gsl_matrix_set (class6[i].m, 11, 0, LDAFea6[i].mad[2]); gsl_matrix_set (class6[i].m, 12, 0, LDAFea6[i].rms[0]); gsl_matrix_set (class6[i].m, 13, 0, LDAFea6[i].rms[1]); gsl_matrix_set (class6[i].m, 14, 0, LDAFea6[i].rms[2]); gsl_matrix_set (class6[i].m, 15, 0, LDAFea6[i].var[0]); gsl_matrix_set (class6[i].m, 16, 0, LDAFea6[i].var[1]); gsl_matrix_set (class6[i].m, 17, 0, LDAFea6[i].var[2]); gsl_matrix_set (class7[i].m, 0, 0, LDAFea7[i].mean[0]); gsl_matrix_set (class7[i].m, 1, 0, LDAFea7[i].mean[1]); gsl_matrix_set (class7[i].m, 2, 0, LDAFea7[i].mean[2]); gsl_matrix_set (class7[i].m, 3, 0, LDAFea7[i].std[0]); gsl_matrix_set (class7[i].m, 4, 0, LDAFea7[i].std[1]); gsl_matrix_set (class7[i].m, 5, 0, LDAFea7[i].std[2]); gsl_matrix_set (class7[i].m, 6, 0, LDAFea7[i].corrcoef[0]); gsl_matrix_set (class7[i].m, 7, 0, LDAFea7[i].corrcoef[1]); gsl_matrix_set (class7[i].m, 8, 0, LDAFea7[i].corrcoef[2]); gsl_matrix_set (class7[i].m, 9, 0, LDAFea7[i].mad[0]); gsl_matrix_set (class7[i].m, 10, 0, LDAFea7[i].mad[1]); gsl_matrix_set (class7[i].m, 11, 0, LDAFea7[i].mad[2]); gsl_matrix_set (class7[i].m, 12, 0, LDAFea7[i].rms[0]); gsl_matrix_set (class7[i].m, 13, 0, LDAFea7[i].rms[1]); gsl_matrix_set (class7[i].m, 14, 0, LDAFea7[i].rms[2]); gsl_matrix_set (class7[i].m, 15, 0, LDAFea7[i].var[0]); gsl_matrix_set (class7[i].m, 16, 0, LDAFea7[i].var[1]); gsl_matrix_set (class7[i].m, 17, 0, LDAFea7[i].var[2]); gsl_matrix_set (class8[i].m, 0, 0, LDAFea8[i].mean[0]); gsl_matrix_set (class8[i].m, 1, 0, LDAFea8[i].mean[1]); gsl_matrix_set (class8[i].m, 2, 0, LDAFea8[i].mean[2]); gsl_matrix_set (class8[i].m, 3, 0, LDAFea8[i].std[0]); gsl_matrix_set (class8[i].m, 4, 0, LDAFea8[i].std[1]); gsl_matrix_set (class8[i].m, 5, 0, LDAFea8[i].std[2]); gsl_matrix_set (class8[i].m, 6, 0, LDAFea8[i].corrcoef[0]); gsl_matrix_set (class8[i].m, 7, 0, LDAFea8[i].corrcoef[1]); gsl_matrix_set (class8[i].m, 8, 0, LDAFea8[i].corrcoef[2]); gsl_matrix_set (class8[i].m, 9, 0, LDAFea8[i].mad[0]); gsl_matrix_set (class8[i].m, 10, 0, LDAFea8[i].mad[1]); gsl_matrix_set (class8[i].m, 11, 0, LDAFea8[i].mad[2]); gsl_matrix_set (class8[i].m, 12, 0, LDAFea8[i].rms[0]); gsl_matrix_set (class8[i].m, 13, 0, LDAFea8[i].rms[1]); gsl_matrix_set (class8[i].m, 14, 0, LDAFea8[i].rms[2]); gsl_matrix_set (class8[i].m, 15, 0, LDAFea8[i].var[0]); gsl_matrix_set (class8[i].m, 16, 0, LDAFea8[i].var[1]); gsl_matrix_set (class8[i].m, 17, 0, LDAFea8[i].var[2]); }/* insert *//*************************累加與求平均值******************************/ matrixPtr mean; matrixPtr mean_temp; matrixPtr all_mean; matrixPtr v; mean = malloc( class_num*sizeof( matrix ) ); mean_temp = malloc( class_num*sizeof( matrix ) ); all_mean = malloc( sizeof( matrix ) ); v = malloc( class_num*sizeof( matrix ) ); all_mean->m = gsl_matrix_alloc(sample_dim, 1); gsl_matrix_set_zero( all_mean->m ); for( i=0;i<class_num;i++ ) { mean[i].m = gsl_matrix_alloc(sample_dim, 1); mean_temp[i].m = gsl_matrix_alloc(sample_dim, 1); gsl_matrix_set_zero( mean[i].m ); v[i].m = gsl_matrix_alloc(sample_dim, 1); gsl_matrix_set_zero( v[i].m ); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -