3

固有ライブラリを使用して任意の行列またはスパース行列のselfadjointViewプロパティを使用しようとすると、常にエラーメッセージが表示されます。以下はそれをチェックするための簡単なコードです。私のプログラムでは、自己随伴行列を試してみます。

#define EIGEN_YES_I_KNOW_SPARSE_MODULE_IS_NOT_STABLE_YET
#include <Eigen/Sparse>
#include <Eigen/Dense>
#include <Eigen/Core>
#include <iostream>

using namespace Eigen;
int main ()
{
SparseMatrix<float>  mat(3,3);
Matrix<float, 3, 1> vec;
std::cout<<mat.selfadjointView<>()*vec;
}

私が受け取るエラーメッセージは次のとおりです。エラー:「Eigen :: SparseMatrix :: selfadjointView()」を呼び出すための一致する関数がありません</ p>

4

1 に答える 1

3

テンプレート引数を指定する必要があるため、mat.selfadjointView<Upper>()またはを読み取る必要がありますmat.selfadjointView<Lower>()。1つ目は、上三角部分のエントリを使用し、mat下三角部分を埋めて、行列を自己随伴させる必要があることを意味します。2つ目はその逆です。

于 2011-08-25T01:03:21.987 に答える