这么做的目的是方便训练是时数据的导入。
话不多说,直接贴出我的程序
头文件
#ifndef _TXTTOVECTOR_H #define _TXTTOVECTOR_H #include<iostream> #include <fstream> #include <vector> #include <string> using namespace std; void readData(string name); #endif
源文件
#pragma once #include<iostream> #include <fstream> #include <vector> #include <string> #include "TxtToVector.h" using namespace std; extern vector<vector<float>> x; //样本集 注意这里的extern extern vector<float> y; //样本类别集 void readData(string fileName) { float temp; ifstream file(fileName, ios::in); if (file.is_open() == false) { cerr << "Error!" << endl; exit(-1); } int j = 0; while(!file.eof()) { vector<float> rx; for (int i = 0; i < 4; i++) { file >>temp; rx.push_back(temp); file.get();//分隔符, } x.push_back(rx); if (j<20) {y.push_back(1);} else {y.push_back(0);} j++; } file.close(); }
main函数
#include "TxtToVector.h" #include<iostream> #include <fstream> #include <vector> #include <string> using namespace std; vector<vector<double>> x; //样本集 vector<double> y; //样本类别集 int main() { readData("data.txt"); for (int i=0;i<54;i++) { for (int j=0;j<4;j++) { cout<<x[i][j]<<" "; } cout<<y[i]<<" "; cout<<endl; } getchar(); return 0; }
数据格式:
5.4,3.4,1.7,0.2
5.1,3.7,1.5,0.4
4.6,3.6,1.0,0.2
5.1,3.3,1.7,0.5
4.8,3.4,1.9,0.2
每一行是一个样本的特征向量