Matlabの関数が機能するのと同じように、平均ベクトルと共分散行列の両方を持つ、C ++の多変量正規分布からランダムベクトルをサンプリングする方法を見つけようとしていますmvnrnd
。このページでこれを実装するクラスに関連するコードを見つけましたが、コンパイルに問題がありました。EigenMultivariateNormal
main.cpp に含まれるヘッダー ファイルを作成しました。クラスのオブジェクトを作成しようとしています。
MatrixXd MN(10,1);
MatrixXd CVM(10,10);
EigenMultivariateNormal <double,int> (&MN,&CVM) mvn;
問題は、コンパイル時にテンプレート関連のエラーが発生することです。
error: type/value mismatch at argument 2 in template parameter list for ‘template<class _Scalar, int _size> class EigenMultivariateNormal’
error: expected a constant of type ‘int’, got ‘int’
error: expected ‘;’ before ‘mvn’
私はテンプレートの操作方法について表面的な考えしか持っていません.cppの専門家ではないので、正確に何が間違っているのでしょうか? const
どうやら、コードのどこかにあるはずです。