繁体   English   中英

重新插入特征库的稀疏矩阵

[英]Re-insertion of sparse matrix of Eigen library

我在我的C ++代码中使用了Eigen库的稀疏矩阵。 我的代码中有一个主要的迭代。 在此迭代开始之前,我初始化了一个定义的稀疏矩阵(S是线性方程式的系数矩阵(S * x = b))。 每次迭代都必须更改此矩阵的某些元素。 但是,当我使用“ S.insert(ii,ii)= new_value”执行此操作时,它将返回此错误:

断言`(p <= startId || m_data.index(p-1)!= inner)&&“您不能插入已经存在的元素,必须为此调用coeffRef””失败...

如何正确重新插入?

我在Eigen库快速参考页中找到了正确的方法。 我必须使用“ S.coeffRef(ii,ii)= new_value”而不是“ S.insert(ii,ii)= new_value”。 它说:“ insert()假定该元素尚不存在;否则,使用coeffRef()”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM