-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdatasets.h
108 lines (101 loc) · 1.44 KB
/
datasets.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#ifndef _DATASETS_
#define _DATASETS_
#endif
#ifndef _MATRIX_
#include "Mat.h"
#define _MATRIX_
#endif
#include <fstream>
#include "string.h"
class DataUnit{
public :
double data;
DataUnit *next;
DataUnit(){
next=NULL;
data=0;
}
DataUnit(double a){
next=NULL;
data=a;
}
};
class inData{
private:
DataUnit *ptr;
DataUnit *head;
public:
inData(){
this->head=new DataUnit(0);
this->ptr=this->head;
int size=0;
}
void push_back(double a){
head->data+=1;
ptr->next=new DataUnit(a);
ptr=ptr->next;
}
void disp(){
if (!head) return;
DataUnit *p=head;
p=p->next;
while(p){
printf("%f ",p->data);
p=p->next;
}
}
int size(){
return head->data;
}
void deleteData(){
DataUnit *p=head;
while(p){
ptr=p;
p=p->next;
delete ptr;
}
head=NULL;
}
void readyOut(){
ptr=head->next;
}
double out(){
double value=ptr->data;
ptr=ptr->next;
return value;
}
};
inData Get_Datas()
{
std::ifstream in("C:\\Users\\Thautwarm\\Desktop\\JIAOTONG\\DataDealed.txt");
double value;
inData Data;
while(!in.eof())
{
in>>value;
Data.push_back(value);
}
in.close();
return Data;
}
Matrix toMat(inData data,int col,int row=-1){
int size=data.size();
if (row==-1){
row=size/col;
}
else{
if(row*col!=size)
row=size/col;
}
Matrix mat(row,col);
data.readyOut();
double value;
int i,j;
for(i=1;i<=row;++i){
for(j=1;j<=col;++j)
{ value=data.out();
mat(i,j)=value;
}
}
return mat;
}