eigen

    1熱度

    1回答

    假設我有以下代碼 class simple_class { public: simple_class() { } void start() { boost::thread simple_thread(&simple_class::expand,this); } void expand() { while(1

    12熱度

    4回答

    CMake找不到我的Eigen3軟件包。我設置了一個環境變量,稱爲 EIGEN3_INCLUDE_DIR 指向FindEigen3.cmake所在的路徑。 然後在我的CMakeLists.txt寫道: find_package(Eigen3 REQUIRED) include_directories(EIGEN3_INCLUDE_DIR) 我得到錯誤的下一條消息: CMake Error

    1熱度

    1回答

    我正在使用Eigen 3.1.1庫和MS Visual C++ 2010.我想實現一個簡單的併發緩衝區來控制對一個元素的訪問通用類型T. 由於我使用Eigen類型,因此如果使用固定大小的可矢量化Eigen類型實例化緩衝區,則必須重載併發緩衝區的新運算符。另見: Structures Having Eigen Members。 #include <boost/thread.hpp> #includ

    6熱度

    2回答

    我想檢查我的矩陣是否使用特徵值方法奇異(即如果其中一個特徵值是零,那麼矩陣奇異)。這裏是代碼: z <- matrix(c(-3,2,1,4,-9,6,3,12,5,5,9,4),nrow=4,ncol=3) eigen(t(z)%*%z)$values 我知道特徵值按降序排列。有人能讓我知道是否有辦法找出特徵值與矩陣中的哪一列相關聯?我需要刪除共線列。 在上面的例子中可能會很明顯,但它只是

    1熱度

    1回答

    我一直在使用J.F. Sebastian的implementation兩個排序數組的第k個順序統計,並取得了一些成功。 基本上,該算法將長度爲la和lb的兩個排序數組A和B作爲輸入,並以log(la)+ log(lb)次返回其聯合的第k個最大元素。 但是,在我的應用程序中,在某些情況下,A將按降序排序。幸運的是,我事先知道這些情況是什麼。所以我總是可以這樣做: (A.data()和A.data()

    4熱度

    2回答

    數學庫入門,我遇到了一個非常簡單的任務:使用四元數轉換一系列矢量。看起來我所做的一切都沒有找到operator*的結果,或者將數組與矩陣混合在一起。 Eigen::Quaternionf rot = …; Eigen::Array3Xf series = …; // expected this to work as matrix() returns a Transformation: se

    4熱度

    1回答

    你好我有一個代碼實現libeigen2來計算特徵向量。現在我想使用boost :: serialization來保存信息以供稍後檢索。從示例tutorial我想出了以下代碼! class RandomNode { private: friend class boost::serialization::access; template<class Archive> void serializ

    6熱度

    3回答

    我在another thread上開始了類似的問題,但後來我專注於如何使用OpenCV。由於未能達到我原先想要的,我會在這裏問到我想要的。 我有兩個矩陣。矩陣a是2782x128,矩陣b是4000x128,都是無符號字符值。這些值存儲在一個數組中。對於a中的每個向量,我需要b中具有最接近的歐幾里德距離的向量的索引。 好了,現在我的代碼來實現這一目標: #include <windows.h> #

    6熱度

    2回答

    我想將double數組映射到現有的MatrixXd結構。到目前爲止,我已經設法將Eigen矩陣映射到一個簡單的數組,但是我找不到實現它的方法。 void foo(MatrixXd matrix, int n){ double arrayd = new double[n*n]; // map the input matrix to an array Map<MatrixXd>(arrayd,

    5熱度

    7回答

    我有一個較低的三角形MatrixXd,我想將其較低的值複製到上側,因爲它將成爲對稱矩陣。我該怎麼做? 到目前爲止,我已經做了: MatrixXd m(n,n); ..... //do something with m for(j=0; j < n; j++) { for(i=0; i<j; i++) { m(i,j) = m(j,i);