移动窗口(Moving Window)Eigen/Qt/C++

移动窗口(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

自我理解,有错请指教一波!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值