私はEigen Solverを使用しています。作成したベクトル/行列から値を取得するのに問題があります。たとえば、次のコードでは、エラーはありませんが、実行時エラーが発生します。私は(これは私が書いた別の関数内のパラメータになりますように私はこれを必要とする)私の選択の変数にxの値を取得するにはどうすればよい固有値ソルバのVectorから値を取得する
#include <iostream>
#include <math.h>
#include <vector>
#include <Eigen\Dense>
using namespace std;
using namespace Eigen;
int main()
{
Matrix3f A;
Vector3f b;
vector<float> c;
A << 1, 2, 3, 4, 5, 6, 7, 8, 10;
b << 3, 3, 4;
cout << "Here is the matrix A:\n" << A << endl;
cout << "Here is the vector b:\n" << b << endl;
Vector3f x = A.colPivHouseholderQr().solve(b);
for (int i = 0; i < 3; i++)
{
c[i] = x[i];
cout << c[i] << " ";
}
//cout << "The solution is:\n" << x << endl;
return 0;
}
。
'が、実行時ERROR'が、それはあり得ます何か秘密?あなたはそれを共有できますか? – Gluttton
問題は、 'std :: vector c'がサイズ3にサイズ変更されていないことです(Eigenの問題ではなく、ランタイムエラーのソースから見るべきです)。 –
chtz
' c.resize(b。 size()); ' – RHertel