2017-02-09 98 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