2017-02-09 342 views
0

我试图用Eigen库初始化一个6x4矩阵,如下所示;Eigen中的初始化矩阵

MatrixXf DH(6,4); 

在我的班级定义。但这会导致错误
Expected parameter declarator

根据Eigen tutorial我所做的是正确的。有什么想法吗?

感谢

回答

2

我假设你有这样的:

class Test { 
    MatrixXf DH(6, 4); 
public: 
    Test() { 
    } 
}; 

(6, 4)意味着你调用构造函数。但是你不能在参数声明中调用非静态函数。这是参数列表的用途:

class Test { 
    MatrixXf DH; 
public: 
    Test() : DH(6, 4) { 
    } 
}; 
+0

谢谢,它的工作原理。 – Vino

1

大多数情况下,声明会被混淆为函数。

尝试初始化类的构造函数初始化列表中的矩阵,因为在构造函数内部初始化矩阵是不可能的,除非它是一个指针,并且您为内部的DH分配内存。

public: 
    YourClass() : DH(6, 4) 
    { 

    } 
+0

谢谢,它的工作原理。 – Vino