eigen

    1熱度

    2回答

    最近,我一直在JS畫布上做二維和三維分形。現在,我正在通過SDL和Eigen將我的項目移植到C++中。能夠編寫功能供以後使用非常重要。下面的代碼是我在做一個複合函數工廠第一次嘗試: std::function< Eigen::Vector3f(Eigen::Vector3f) > compose3d(std::function< Eigen::Vector3f(Eigen::Vector3f)

    2熱度

    1回答

    我最近幾個小時一直在敲牆頭,試圖弄清楚爲什麼有些部分模板專業化失敗,我真的可以使用一些幫助。 基本上,我正在研究一些依賴在編譯時知道矩陣大小的代碼,但我試圖通過模板來做到這一點。似乎有使用類型組合的問題,我真的不明白。通過圖示的方式,考慮以下(略無意義)代碼: template <typename T> struct type1 { typedef bool bar; }; template <

    1熱度

    1回答

    我有很簡單的問題,但不幸的是我無法找到本徵文檔中回答 我有一個「胖」矩陣一個(行數少於數cols),我想找到矩陣的最小規範僞逆。 理想情況下,我想通過最低標準找到它QR分解如this幻燈片中所述。 根據幻燈片我可以用簡單直接的方法,通過使用這個公式 A.transpose() * (A * A.transpose()).inverse() 要做到這一點,但我希望有在徵更優雅的解決方案 PS對不

    1熱度

    1回答

    我正在創建一個類,該類應該有一個矩陣作爲在Eigen庫的類型爲MatrixXd的頭類中聲明的受保護成員。問題是,如果我聲明它爲MatrixXd name(5, 5);,其中矩陣的尺寸位於括號之間,編譯器將其視爲我的類的一種方法,而不是成員。 你能幫我嗎?

    2熱度

    1回答

    我想基於所述本徵庫denfine類中初始化的模板對象通過編譯該代碼,我的編譯器給了我以下錯誤: MatrixV.h:14:68: error: 'V' is not a type Eigen::JacobiSVD<Eigen::MatrixXd, Eigen::NoQRPreconditioner> svd(V,ComputeFullU | ComputeFullV); Matrix

    1熱度

    1回答

    向量加法廣播我想密集VectorXf添加到SparseMatrix,我知道我能爲密矩陣做矩陣+矢量容易,like this Eigen::MatrixXf mat(2,4); Eigen::VectorXf v(2); mat << 1, 2, 6, 9, 3, 1, 7, 2; v << 0, 1; //add v to ea

    0熱度

    1回答

    我有一個主要的Android項目,我想使用一個名爲Eigen的庫。整合已在這裏完成https://github.com/james34602/Android-Linear-Algebra-manipulation-using-Eigen 但是我想知道什麼是最好的方式將其拉入我的項目?我應該創建一個模塊並引用整個其他項目嗎?或者只是在我自己的項目中複製JNI代碼?看起來像模塊的地方,但我怎麼會用模塊

    0熱度

    1回答

    我認爲這應該是一個非常簡單的事情,但我沒有得到它解決。我試圖做兩個二元秩序特徵張量的雙重收縮。一切正常,但雙收縮的結果是一個Eigen類型: Eigen::TensorContractionOp<const std::array<Eigen::IndexPair<int>, 2ul>, const Eigen::TensorFixedSize<double, Eigen::Sizes<3l, 3l

    0熱度

    1回答

    我需要求解許多形如Ax = 0的小(n = 4)齊次線性系統,其中A是一個奇異矩陣。我目前使用下面的代碼: void solve(const matrix_t& A, vector_t& x){ auto svd = A.jacobiSvd(Eigen::ComputeFullU | Eigen::ComputeFullV); auto V = svd.matrixV();

    0熱度

    1回答

    我在Eigen C++中有一個稀疏矩陣A。現在我想將它對稱化到另一個稀疏矩陣Asym: 我希望如此,因爲它是那麼簡單: Eigen::SparseMatrix<FLOATDATA> A; ... Eigen::SparseMatrix<FLOATDATA> Asym = 0.5*(A+A.transpose()); // error here 但由於顯而易見的原因,它提供了以下斷言失敗錯誤