移动窗口(Moving Window)Eigen/Qt/C++
设定参数
、、、、//.h文件内
private slots:
void MovingWindows();
private:
MatrixXd XtrainData; //设置初始训练数据
int windows_w = 0; //设置移动窗口宽度,并初始化为0
int h = 0; //设置移动步长,并初始化为0
MatrixXd medium; //设置一个中间转换矩阵
int h_row = 1; //每当h填充满后,移动窗口
设定步长、窗口宽度
//给初始训练数据赋值
XtrainData.resize(7,3); //设置行列数
XtrainData << 1,1,1,
2,1,1,
3,1,1,
4,1,1,
5,1,1,
6,1,1,
7,1,1;
windows_w = XtrainData.cols(); //设移动窗口的宽度
h = 3; //设移动步长为3
medium = MatrixXd::Zero(h,XtrainData.cols()); //中间矩阵,并初始化为0矩阵
QTimer *timer = new QTimer(this);
connect(timer,SIGNAL(timeout()),this,SLOT(MovingWindows()));
timer->start(1000);
窗口刷新
void Widget::MovingWindows()
{
static int a1 = 1;
static int a2 = 1;
static int a3 = 1;
if (a1 % 2 == 0) { //设定的是偶数时积攒数据以备更新使用
medium(h_row-1,0) = a1;
medium(h_row-1,1) = a2;
medium(h_row-1,2) = a3;
if (h_row == h) {
h_row = 0;
for (int i = 0; i < XtrainData.rows() - h; i++) {
XtrainData.row(i) = XtrainData.row(i+h);
}
for (int i = 0; i < h; i++) {
XtrainData.row(i+XtrainData.rows()-h) = medium.row(i);
}
}
h_row++;
}
//cout << "h_row:" << endl << h_row << endl;
//cout << "medium:" << a1 << endl << medium << endl;
//cout << "XtrainData:" << a1 << endl << XtrainData << endl;
a1++;
a2++;
a3++;
}
打印结果
XtrainData:1
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
XtrainData:2
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
XtrainData:3
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
XtrainData:4
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
XtrainData:5
1 1 1
2 1 1
3 1 1
4 1 1
5 1 1
6 1 1
7 1 1
XtrainData:6
4 1 1
5 1 1
6 1 1
7 1 1
2 2 2
4 4 4
6 6 6
XtrainData:7
4 1 1
5 1 1
6 1 1
7 1 1
2 2 2
4 4 4
6 6 6
XtrainData:8
4 1 1
5 1 1
6 1 1
7 1 1
2 2 2
4 4 4
6 6 6
XtrainData:9
4 1 1
5 1 1
6 1 1
7 1 1
2 2 2
4 4 4
6 6 6
XtrainData:10
4 1 1
5 1 1
6 1 1
7 1 1
2 2 2
4 4 4
6 6 6
XtrainData:11
4 1 1
5 1 1
6 1 1
7 1 1
2 2 2
4 4 4
6 6 6
XtrainData:12
7 1 1
2 2 2
4 4 4
6 6 6
8 8 8
10 10 10
12 12 12
XtrainData:13
7 1 1
2 2 2
4 4 4
6 6 6
8 8 8
10 10 10
12 12 12
XtrainData:14
7 1 1
2 2 2
4 4 4
6 6 6
8 8 8
10 10 10
12 12 12
XtrainData:15
7 1 1
2 2 2
4 4 4
6 6 6
8 8 8
10 10 10
12 12 12
XtrainData:16
7 1 1
2 2 2
4 4 4
6 6 6
8 8 8
10 10 10
12 12 12
XtrainData:17
7 1 1
2 2 2
4 4 4
6 6 6
8 8 8
10 10 10
12 12 12
XtrainData:18
6 6 6
8 8 8
10 10 10
12 12 12
14 14 14
16 16 16
18 18 18
XtrainData:19
6 6 6
8 8 8
10 10 10
12 12 12
14 14 14
16 16 16
18 18 18
XtrainData:20
6 6 6
8 8 8
10 10 10
12 12 12
14 14 14
16 16 16
18 18 18
XtrainData:21
6 6 6
8 8 8
10 10 10
12 12 12
14 14 14
16 16 16
18 18 18
XtrainData:22
6 6 6
8 8 8
10 10 10
12 12 12
14 14 14
16 16 16
18 18 18
XtrainData:23
6 6 6
8 8 8
10 10 10
12 12 12
14 14 14
16 16 16
18 18 18
XtrainData:24
12 12 12
14 14 14
16 16 16
18 18 18
20 20 20
22 22 22
24 24 24
XtrainData:25
12 12 12
14 14 14
16 16 16
18 18 18
20 20 20
22 22 22
24 24 24
XtrainData:26
12 12 12
14 14 14
16 16 16
18 18 18
20 20 20
22 22 22
24 24 24
XtrainData:27
12 12 12
14 14 14
16 16 16
18 18 18
20 20 20
22 22 22
24 24 24
XtrainData:28
12 12 12
14 14 14
16 16 16
18 18 18
20 20 20
22 22 22
24 24 24
XtrainData:29
12 12 12
14 14 14
16 16 16
18 18 18
20 20 20
22 22 22
24 24 24
XtrainData:30
18 18 18
20 20 20
22 22 22
24 24 24
26 26 26
28 28 28
30 30 30
XtrainData:31
18 18 18
20 20 20
22 22 22
24 24 24
26 26 26
28 28 28
30 30 30
XtrainData:32
18 18 18
20 20 20
22 22 22
24 24 24
26 26 26
28 28 28
30 30 30
XtrainData:33
18 18 18
20 20 20
22 22 22
24 24 24
26 26 26
28 28 28
30 30 30
XtrainData:34
18 18 18
20 20 20
22 22 22
24 24 24
26 26 26
28 28 28
30 30 30
XtrainData:35
18 18 18
20 20 20
22 22 22
24 24 24
26 26 26
28 28 28
30 30 30
XtrainData:36
24 24 24
26 26 26
28 28 28
30 30 30
32 32 32
34 34 34
36 36 36
XtrainData:37
24 24 24
26 26 26
28 28 28
30 30 30
32 32 32
34 34 34
36 36 36
XtrainData:38
24 24 24
26 26 26
28 28 28
30 30 30
32 32 32
34 34 34
36 36 36
XtrainData:39
24 24 24
26 26 26
28 28 28
30 30 30
32 32 32
34 34 34
36 36 36
XtrainData:40
24 24 24
26 26 26
28 28 28
30 30 30
32 32 32
34 34 34
36 36 36
XtrainData:41
24 24 24
26 26 26
28 28 28
30 30 30
32 32 32
34 34 34
36 36 36
XtrainData:42
30 30 30
32 32 32
34 34 34
36 36 36
38 38 38
40 40 40
42 42 42
XtrainData:43
30 30 30
32 32 32
34 34 34
36 36 36
38 38 38
40 40 40
42 42 42
XtrainData:44
30 30 30
32 32 32
34 34 34
36 36 36
38 38 38
40 40 40
42 42 42
XtrainData:45
30 30 30
32 32 32
34 34 34
36 36 36
38 38 38
40 40 40
42 42 42
XtrainData:46
30 30 30
32 32 32
34 34 34
36 36 36
38 38 38
40 40 40
42 42 42
XtrainData:47
30 30 30
32 32 32
34 34 34
36 36 36
38 38 38
40 40 40
42 42 42
XtrainData:48
36 36 36
38 38 38
40 40 40
42 42 42
44 44 44
46 46 46
48 48 48
XtrainData:49
36 36 36
38 38 38
40 40 40
42 42 42
44 44 44
46 46 46
48 48 48
XtrainData:50
36 36 36
38 38 38
40 40 40
42 42 42
44 44 44
46 46 46
48 48 48
XtrainData:51
36 36 36
38 38 38
40 40 40
42 42 42
44 44 44
46 46 46
48 48 48
XtrainData:52
36 36 36
38 38 38
40 40 40
42 42 42
44 44 44
46 46 46
48 48 48
XtrainData:53
36 36 36
38 38 38
40 40 40
42 42 42
44 44 44
46 46 46
48 48 48
XtrainData:54
42 42 42
44 44 44
46 46 46
48 48 48
50 50 50
52 52 52
54 54 54
XtrainData:55
42 42 42
44 44 44
46 46 46
48 48 48
50 50 50
52 52 52
54 54 54
自我理解,有错请指教一波!!!