📄 ica2.cpp
字号:
// ica2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "matrix.h"
#include <string.h>
void testwhitensignal()
{
int r=100,c=4;
double** a=readsample("data.txt",r,c);
write("inputdata输入数据.txt",a,r,c);
double** x=zeromean(a,r,c);
write("0mean0均值数据.txt",x,r,c);
double** x1=normalize(x,r,c);
write("norm归一化数据.txt",x1,r,c);
double** Rx=cov(x1,r,c);
write("Rx归一化数据的关联矩阵.txt",Rx,c);
double* d=new double[c];
double* e=new double[c];
householder(Rx,c,d,e);
ql(Rx,c,d,e);
permute(Rx,d,c);
double** EE=Rx; // eigenvector matrix
double* DD=d; // eigenvalues
write("EE关联矩阵的本征矢矩阵.txt",EE,c);
write("DD关联矩阵的本征值.txt",DD,c);
double** VV=vforwhiten(EE,DD,c); // whitening matrix
write("VV白化矩阵.txt",VV,c);
double** WW=whiten(VV,x1,r,c); // whiten signal
write("WW白化矩阵白化的数据.txt",WW,r,c);
double** YY=mult(x1,EE,r,c,c); // PCA signal
write("PCA数据.txt",YY,r,c);
double** normYY=normalize(YY,r,c); // normalized PCA signal == whiten signal
write("PCA数据归一化.txt",normYY,r,c);
///////////////////////////////////////////////////////////////////////////////////////////
double** ws=whitensignal(a,r,c);
write("whitesignal函数白化的数据.txt",ws,r,c);
/////////////////////////////////////////////////////////////////////////////////////////////
}
void testpca()
{
int r=100,c=4;
double** a=readsample("data.txt",r,c);
double** E=alloc(c);
double* d=new double[c];
double** pcad=pca(a,r,c,E,d);
write("pcadata.txt",pcad,r,c);
write("pcaE.txt",E,c);
write("pcad.txt",d,c);
}
void testorth()
{
int r=10;
int c=10;
double** a=createrand(r,c);
write("orth0.txt",a,r,c);
write("orth.txt",orthonormalize(a,r,c),r,c);
}
void testfastica()
{
int r=0,c=0;
char filename[100];
cout<<"input "<<endl<<"(1)data file name"<<endl<<"(2) number of data"<<endl<<"(3) number of channel"<<endl;
cin>>filename>>r>>c;
double** a=readsample(filename,r,c);
double** neww=NULL;
double** s=fastica(a,r,c,c,neww);
char icafile[100];
char wfile[100];
cout<<"input "<<endl<<"(1)ica file name"<<endl<<"(2) weight file name"<<endl;
cin>>icafile>>wfile;
write(icafile,s,r,c);
write(wfile,neww,c,c);
}
int main(int argc, char* argv[])
{
//testwhitensignal();
//testpca();
//testorth();
testfastica();
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -