⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lda3.c

📁 LDA程式設計
💻 C
📖 第 1 页 / 共 4 页
字号:
#include <stdio.h>#include <gsl/gsl_math.h>
#include <gsl/gsl_eigen.h>#include <gsl/gsl_vector.h>#include <gsl/gsl_linalg.h>#include <gsl/gsl_complex.h>#include <gsl/gsl_complex_math.h>#include <gsl/gsl_permutation.h>#include <assert.h>#define N_data 10000#define windowLength 32
#define overLap 50
#define diff_window (windowLength-(windowLength*overLap)/100)#define class_num 8#define sample_num 100#define feature_num 6#define accelerometer_dim 3#define feature_vector_num feature_num*accelerometer#define lda_sample 25#define sample_dim 18
struct Feature
{
       double mean[3];    //Mean
       double std[3];     //Standard Deviation
       double corrcoef[3];    //Correlation       //double energy[3];    //Energy       //double iqr[3];    //Interquartile Range       double mad[3];    //Mean Absolute Deviation       double rms[3];    //Root Mean Square       double var[3];    //Variance
};
typedef struct Feature feature;
typedef feature *featurePtr;struct Matrix{	gsl_matrix* m;};typedef struct Matrix matrix;
typedef matrix *matrixPtr;

gsl_matrix_complex * lda( featurePtr, featurePtr, featurePtr, featurePtr, featurePtr, featurePtr, featurePtr, featurePtr );void gsl_matrix_mul_matrix(const gsl_matrix * , const gsl_matrix * , gsl_matrix * );  //matrix-multiply//sl_matrix *W;//	gsl_matrix_complex *W_pre;gsl_matrix * class1_mean_prime;    // 7 X 1gsl_matrix * class2_mean_prime;gsl_matrix * class3_mean_prime;gsl_matrix * class4_mean_prime;gsl_matrix * class5_mean_prime;gsl_matrix * class6_mean_prime;gsl_matrix * class7_mean_prime;gsl_matrix * class8_mean_prime;gsl_matrix * sw_class1_prime;          // 7 X 7gsl_matrix * sw_class2_prime;gsl_matrix * sw_class3_prime;gsl_matrix * sw_class4_prime;gsl_matrix * sw_class5_prime;gsl_matrix * sw_class6_prime;gsl_matrix * sw_class7_prime;gsl_matrix * sw_class8_prime;//gsl_matrix *W = gsl_matrix_alloc (7, 18);
int main(){	double rand_num;	double temp;
	int rand_temp;

	//float Acc_data[3][500], RTAcc[3][500], RTAcc_temp[3][1000];
	int rec_result;
	int is_stable;
	int a;
	FILE* f = fopen ("test.txt", "wb");	FILE* file_W = fopen("W_file.txt", "wb");	int i, j;	//srand(time(NULL));	//double Acc_data[3][N_data];	gsl_matrix_complex *W_pre;	gsl_matrix *W;
	featurePtr RTFea;   	featurePtr LDAFea1;	featurePtr LDAFea2;	featurePtr LDAFea3;	featurePtr LDAFea4;	featurePtr LDAFea5;	featurePtr LDAFea6;	featurePtr LDAFea7;	featurePtr LDAFea8;	RTFea = malloc( sizeof( feature ) );	LDAFea1 = malloc( lda_sample*sizeof( feature ) );	LDAFea2 = malloc( lda_sample*sizeof( feature ) );	LDAFea3 = malloc( lda_sample*sizeof( feature ) );	LDAFea4 = malloc( lda_sample*sizeof( feature ) );	LDAFea5 = malloc( lda_sample*sizeof( feature ) );	LDAFea6 = malloc( lda_sample*sizeof( feature ) );	LDAFea7 = malloc( lda_sample*sizeof( feature ) );	LDAFea8 = malloc( lda_sample*sizeof( feature ) );    
	//srand( time( NULL ) );	//gsl_matrix *W = gsl_matrix_alloc (7, 18);	class1_mean_prime = gsl_matrix_alloc (7, 1);	class2_mean_prime = gsl_matrix_alloc (7, 1);	class3_mean_prime = gsl_matrix_alloc (7, 1);	class4_mean_prime = gsl_matrix_alloc (7, 1);	class5_mean_prime = gsl_matrix_alloc (7, 1);	class6_mean_prime = gsl_matrix_alloc (7, 1);	class7_mean_prime = gsl_matrix_alloc (7, 1);	class8_mean_prime = gsl_matrix_alloc (7, 1);	sw_class1_prime = gsl_matrix_alloc (7, 7);	sw_class2_prime = gsl_matrix_alloc (7, 7);	sw_class3_prime = gsl_matrix_alloc (7, 7);	sw_class4_prime = gsl_matrix_alloc (7, 7);	sw_class5_prime = gsl_matrix_alloc (7, 7);	sw_class6_prime = gsl_matrix_alloc (7, 7);	sw_class7_prime = gsl_matrix_alloc (7, 7);	sw_class8_prime = gsl_matrix_alloc (7, 7);
    
	for( i=0;i<25;i++ )
	{		rand_temp = rand()%10000;
		LDAFea1[i].mean[0] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].mean[0] = -4+8*LDAFea1[i].mean[0];		rand_temp = rand()%10000;
		LDAFea1[i].mean[1] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].mean[1] = -4+8*LDAFea1[i].mean[1];		rand_temp = rand()%10000;
		LDAFea1[i].mean[2] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].mean[2] = -4+8*LDAFea1[i].mean[2];		rand_temp = rand()%10000;
		LDAFea1[i].std[0] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].std[0] = -4+8*LDAFea1[i].std[0];		rand_temp = rand()%10000;
		LDAFea1[i].std[1] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].std[1] = -4+8*LDAFea1[i].std[1];		rand_temp = rand()%10000;
		LDAFea1[i].std[2] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].std[2] = -4+8*LDAFea1[i].std[2];		rand_temp = rand()%10000;
		LDAFea1[i].corrcoef[0] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].corrcoef[0] = -4+8*LDAFea1[i].corrcoef[0];		rand_temp = rand()%10000;
		LDAFea1[i].corrcoef[1] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].corrcoef[1] = -4+8*LDAFea1[i].corrcoef[1];		rand_temp = rand()%10000;
		LDAFea1[i].corrcoef[2] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].corrcoef[2] = -4+8*LDAFea1[i].corrcoef[2];		rand_temp = rand()%10000;
		LDAFea1[i].mad[0] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].mad[0] = -4+8*LDAFea1[i].mad[0];		rand_temp = rand()%10000;
		LDAFea1[i].mad[1] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].mad[1] = -4+8*LDAFea1[i].mad[1];		rand_temp = rand()%10000;
		LDAFea1[i].mad[2] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].mad[2] = -4+8*LDAFea1[i].mad[2];		rand_temp = rand()%10000;
		LDAFea1[i].rms[0] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].rms[0] = -4+8*LDAFea1[i].rms[0];		rand_temp = rand()%10000;
		LDAFea1[i].rms[1] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].rms[1] = -4+8*LDAFea1[i].rms[1];		rand_temp = rand()%10000;
		LDAFea1[i].rms[2] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].rms[2] = -4+8*LDAFea1[i].rms[2];		rand_temp = rand()%10000;
		LDAFea1[i].var[0] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].var[0] = -4+8*LDAFea1[i].var[0];		rand_temp = rand()%10000;
		LDAFea1[i].var[1] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].var[1] = -4+8*LDAFea1[i].var[1];		rand_temp = rand()%10000;
		LDAFea1[i].var[2] = (double)( rand_temp/10000.0 );   
		LDAFea1[i].var[2] = -4+8*LDAFea1[i].var[2];		fprintf(f, "%f, ", LDAFea1[i].mean[0]);		fprintf(f, "%f, ", LDAFea1[i].mean[1]);		fprintf(f, "%f, ", LDAFea1[i].mean[2]);		fprintf(f, "%f, ", LDAFea1[i].std[0]);		fprintf(f, "%f, ", LDAFea1[i].std[1]);		fprintf(f, "%f, ", LDAFea1[i].std[2]);		fprintf(f, "%f, ", LDAFea1[i].corrcoef[0]);		fprintf(f, "%f, ", LDAFea1[i].corrcoef[1]);		fprintf(f, "%f, ", LDAFea1[i].corrcoef[2]);		fprintf(f, "%f, ", LDAFea1[i].mad[0]);		fprintf(f, "%f, ", LDAFea1[i].mad[1]);		fprintf(f, "%f, ", LDAFea1[i].mad[2]);		fprintf(f, "%f, ", LDAFea1[i].rms[0]);		fprintf(f, "%f, ", LDAFea1[i].rms[1]);		fprintf(f, "%f, ", LDAFea1[i].rms[2]);		fprintf(f, "%f, ", LDAFea1[i].var[0]);		fprintf(f, "%f, ", LDAFea1[i].var[1]);		fprintf(f, "%f\n", LDAFea1[i].var[2]);		//fprintf(f, "\n");	}	for( i=0;i<25;i++ )
	{		rand_temp = rand()%10000;
		LDAFea2[i].mean[0] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].mean[0] = -4+8*LDAFea2[i].mean[0];		rand_temp = rand()%10000;
		LDAFea2[i].mean[1] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].mean[1] = -4+8*LDAFea2[i].mean[1];		rand_temp = rand()%10000;
		LDAFea2[i].mean[2] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].mean[2] = -4+8*LDAFea2[i].mean[2];		rand_temp = rand()%10000;
		LDAFea2[i].std[0] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].std[0] = -4+8*LDAFea2[i].std[0];		rand_temp = rand()%10000;
		LDAFea2[i].std[1] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].std[1] = -4+8*LDAFea2[i].std[1];		rand_temp = rand()%10000;
		LDAFea2[i].std[2] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].std[2] = -4+8*LDAFea2[i].std[2];		rand_temp = rand()%10000;
		LDAFea2[i].corrcoef[0] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].corrcoef[0] = -4+8*LDAFea2[i].corrcoef[0];		rand_temp = rand()%10000;
		LDAFea2[i].corrcoef[1] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].corrcoef[1] = -4+8*LDAFea2[i].corrcoef[1];		rand_temp = rand()%10000;
		LDAFea2[i].corrcoef[2] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].corrcoef[2] = -4+8*LDAFea2[i].corrcoef[2];
		rand_temp = rand()%10000;
		LDAFea2[i].mad[0] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].mad[0] = -4+8*LDAFea2[i].mad[0];
		rand_temp = rand()%10000;
		LDAFea2[i].mad[1] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].mad[1] = -4+8*LDAFea2[i].mad[1];
		rand_temp = rand()%10000;
		LDAFea2[i].mad[2] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].mad[2] = -4+8*LDAFea2[i].mad[2];
		rand_temp = rand()%10000;
		LDAFea2[i].rms[0] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].rms[0] = -4+8*LDAFea2[i].rms[0];
		rand_temp = rand()%10000;
		LDAFea2[i].rms[1] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].rms[1] = -4+8*LDAFea2[i].rms[1];
		rand_temp = rand()%10000;
		LDAFea2[i].rms[2] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].rms[2] = -4+8*LDAFea2[i].rms[2];
		rand_temp = rand()%10000;
		LDAFea2[i].var[0] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].var[0] = -4+8*LDAFea2[i].var[0];
		rand_temp = rand()%10000;
		LDAFea2[i].var[1] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].var[1] = -4+8*LDAFea2[i].var[1];
		rand_temp = rand()%10000;
		LDAFea2[i].var[2] = (double)( rand_temp/10000.0 );   
		LDAFea2[i].var[2] = -4+8*LDAFea2[i].var[2];		fprintf(f, "%f, ", LDAFea2[i].mean[0]);		fprintf(f, "%f, ", LDAFea2[i].mean[1]);		fprintf(f, "%f, ", LDAFea2[i].mean[2]);		fprintf(f, "%f, ", LDAFea2[i].std[0]);		fprintf(f, "%f, ", LDAFea2[i].std[1]);		fprintf(f, "%f, ", LDAFea2[i].std[2]);		fprintf(f, "%f, ", LDAFea2[i].corrcoef[0]);		fprintf(f, "%f, ", LDAFea2[i].corrcoef[1]);		fprintf(f, "%f, ", LDAFea2[i].corrcoef[2]);		fprintf(f, "%f, ", LDAFea2[i].mad[0]);		fprintf(f, "%f, ", LDAFea2[i].mad[1]);		fprintf(f, "%f, ", LDAFea2[i].mad[2]);		fprintf(f, "%f, ", LDAFea2[i].rms[0]);		fprintf(f, "%f, ", LDAFea2[i].rms[1]);		fprintf(f, "%f, ", LDAFea2[i].rms[2]);		fprintf(f, "%f, ", LDAFea2[i].var[0]);		fprintf(f, "%f, ", LDAFea2[i].var[1]);		fprintf(f, "%f\n", LDAFea2[i].var[2]);	}	for(i=0;i<25;i++)	{		rand_temp = rand()%10000;
		LDAFea3[i].mean[0] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].mean[0] = -4+8*LDAFea3[i].mean[0];		rand_temp = rand()%10000;
		LDAFea3[i].mean[1] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].mean[1] = -4+8*LDAFea3[i].mean[1];
		rand_temp = rand()%10000;
		LDAFea3[i].mean[2] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].mean[2] = -4+8*LDAFea3[i].mean[2];
		rand_temp = rand()%10000;
		LDAFea3[i].std[0] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].std[0] = -4+8*LDAFea3[i].std[0];
		rand_temp = rand()%10000;
		LDAFea3[i].std[1] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].std[1] = -4+8*LDAFea3[i].std[1];
		rand_temp = rand()%10000;
		LDAFea3[i].std[2] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].std[2] = -4+8*LDAFea3[i].std[2];
		rand_temp = rand()%10000;
		LDAFea3[i].corrcoef[0] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].corrcoef[0] = -4+8*LDAFea3[i].corrcoef[0];
		rand_temp = rand()%10000;
		LDAFea3[i].corrcoef[1] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].corrcoef[1] = -4+8*LDAFea3[i].corrcoef[1];
		rand_temp = rand()%10000;
		LDAFea3[i].corrcoef[2] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].corrcoef[2] = -4+8*LDAFea3[i].corrcoef[2];
		rand_temp = rand()%10000;
		LDAFea3[i].mad[0] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].mad[0] = -4+8*LDAFea3[i].mad[0];
		rand_temp = rand()%10000;
		LDAFea3[i].mad[1] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].mad[1] = -4+8*LDAFea3[i].mad[1];
		rand_temp = rand()%10000;
		LDAFea3[i].mad[2] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].mad[2] = -4+8*LDAFea3[i].mad[2];
		rand_temp = rand()%10000;
		LDAFea3[i].rms[0] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].rms[0] = -4+8*LDAFea3[i].rms[0];
		rand_temp = rand()%10000;
		LDAFea3[i].rms[1] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].rms[1] = -4+8*LDAFea3[i].rms[1];
		rand_temp = rand()%10000;
		LDAFea3[i].rms[2] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].rms[2] = -4+8*LDAFea3[i].rms[2];
		rand_temp = rand()%10000;
		LDAFea3[i].var[0] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].var[0] = -4+8*LDAFea3[i].var[0];
		rand_temp = rand()%10000;
		LDAFea3[i].var[1] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].var[1] = -4+8*LDAFea3[i].var[1];
		rand_temp = rand()%10000;
		LDAFea3[i].var[2] = (double)( rand_temp/10000.0 );   
		LDAFea3[i].var[2] = -4+8*LDAFea3[i].var[2];		fprintf(f, "%f, ", LDAFea3[i].mean[0]);		fprintf(f, "%f, ", LDAFea3[i].mean[1]);		fprintf(f, "%f, ", LDAFea3[i].mean[2]);		fprintf(f, "%f, ", LDAFea3[i].std[0]);		fprintf(f, "%f, ", LDAFea3[i].std[1]);		fprintf(f, "%f, ", LDAFea3[i].std[2]);		fprintf(f, "%f, ", LDAFea3[i].corrcoef[0]);		fprintf(f, "%f, ", LDAFea3[i].corrcoef[1]);		fprintf(f, "%f, ", LDAFea3[i].corrcoef[2]);		fprintf(f, "%f, ", LDAFea3[i].mad[0]);		fprintf(f, "%f, ", LDAFea3[i].mad[1]);		fprintf(f, "%f, ", LDAFea3[i].mad[2]);		fprintf(f, "%f, ", LDAFea3[i].rms[0]);		fprintf(f, "%f, ", LDAFea3[i].rms[1]);		fprintf(f, "%f, ", LDAFea3[i].rms[2]);		fprintf(f, "%f, ", LDAFea3[i].var[0]);		fprintf(f, "%f, ", LDAFea3[i].var[1]);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -