簡體   English   中英

特征 - 將每個(稀疏)矩陣行除以其對應的對角元素

[英]Eigen - divide each (sparse) matrix row by its corresponding diagonal element

在C ++中使用特征庫,給定稀疏矩陣A ,計算稀疏矩陣B的最有效方式(行方式操作?如何?),使得B(i, j) = A(i, j) / A(i, i) 即,將每行i除以對應的對角線元素A(i, i) 知道如何在原地(替換A條目)和不合適(創建新的稀疏矩陣B )這樣做會很有幫助。

我的稀疏矩陣定義為:

typedef double Real;
typedef Eigen::SparseMatrix<Real> SparseMatrixR;

謝謝,

換句話說,您想要提取A的對角線,將其視為對角矩陣,並將其反轉應用於A:

A = A.diagonal().asDiagonal().inverse() * A;

如果A是rowmajor,則此操作應該稍微更有效。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM