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

📄 main.cpp

📁 主元分析PCA的C代码
💻 CPP
字号:
#include <string.h>
#include <direct.h>
#include "PCA.h"
#include "FileManager.h"

PCA_Param pca_param;
PCA_Data trn_data;
PCA_Data tst_data;
char trn_file_name[MAX_NAME_LEN];
char tst_file_name[MAX_NAME_LEN];

void LoadSet()
{
	FileManager fm;
	char *str;

	fm.LoadFileContent("set.txt");
	str=fm.ParseItemValue("number_input");
	pca_param.number_input=atoi(str);
	delete str;
	str=fm.ParseItemValue("eps");
	pca_param.eps=atof(str);
	delete str;
	str=fm.ParseItemValue("pca_iter");
	pca_param.max_iter=atoi(str);
	delete str;
	str=fm.ParseItemValue("number_pc");
	pca_param.number_pc=atoi(str);
	delete str;

	str=fm.ParseItemValue("data_set_name");
	strcpy(pca_param.data_set_name, str);
	delete str;
	str=fm.ParseItemValue("train_file");
	strcpy(trn_file_name, str);
	delete str;
	str=fm.ParseItemValue("test_file");
	strcpy(tst_file_name, str);
	delete str;
	fm.ReleaseFileContent();
}

void LoadData(PCA_Data &pdata, char *file_name)
{
	int i;
	FileManager fm;
	pdata.number_input=pca_param.number_input;
	double *p=fm.ReadData(pca_param.number_input, pdata.number_sample, file_name);
	pdata.y=(double *)malloc(pdata.number_sample*sizeof(double));
	pdata.x=(double **)malloc(pdata.number_sample*sizeof(double *));

	for(i=0; i<pdata.number_sample; i++)
	{
		pdata.x[i]=(double *)malloc(pca_param.number_input*sizeof(double));
		memcpy(pdata.x[i], p+i*(pca_param.number_input+1), pca_param.number_input*sizeof(double));
		pdata.y[i]=p[i*(pca_param.number_input+1)+pca_param.number_input];
	}
	delete []p;
}

void MkDirectory()
{
	char str[MAX_NAME_LEN];
	_mkdir("result");
	sprintf(str, "result/%s/", pca_param.data_set_name);
	_mkdir(str);
}

void main()
{
	LoadSet();
	MkDirectory();
	LoadData(tst_data, tst_file_name);
	//PCA(pca_param, trn_data);
	DataTransform(pca_param, tst_data);
	FreePCAData(tst_data);
}

⌨️ 快捷键说明

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