eigen 矩陣塊操作


eigen 矩陣塊操作

在Eigen中最基本的快操作運算是用.block()完成的。提取的子矩陣同樣分為動態大小和固定大小。

塊操作 構建動態大小子矩陣
提取塊大小為(p,q),起始於(i,j) matrix.block(i,j,p,q)

同樣需要注意的是在Eigen中,索引是從0開始。所有的操作方法都可以適用於Array.同樣使用固定大小的操作方式在小型矩陣運算時更加的快,但要求在編譯時就要知道矩陣的大小。

        Matrix16x16 E = Matrix16x16::Identity();
        Matrix16x16 Q = Matrix16x16::Identity();
        
        for (int i = 0; i < A.Rows; i++)
        {
            for (int j = 0; j < A.Rows; i++)
            {
                if (i==j)
                {
                    Q.block(i*4, j*4, 4, 4) = A(i, j)*E - B.matrix.transpose();
                }
                else
                {
                    Q.block(i*4, j*4, 4, 4) = A(i, j)*E;
                }
                
            }
        }

.block() 可以為左值,也可以為右值。

 

參考:

(5條消息) Eigen子矩陣操作(block)_不二青衣的博客-CSDN博客


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM