这么做的目的是方便训练是时数据的导入。
话不多说,直接贴出我的程序
头文件
#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
每一行是一个样本的特征向量