这篇文章主要为大家介绍了RcppEigen计算点乘与矩阵乘法时发生连乘计算错误的解决方式,有需要的朋友可以借鉴参考下,希望能够有所帮助
计算点乘与矩阵乘法连乘计算错误
当我们想将 R 中的连乘(如下公式所示)修改成 Rcpp 代码时,
t(X)^2 %*% X
理论上我们只用在 .cpp 代码中输入下述语句即可(默认使用了 RcppEigen
库):
X.adjoint().array().square() * X.array().square();
但实际上这样会会出现问题,原因是 X.adjoint().array().square()
与 X.array().square()
没有成功转化成 Eigen::MatrixXd
形式。虽然单独显示两部分都没问题(可以直接输出看到),但是连乘的时候就会出错。这时我们分开进行一个默认转换,然后再进行矩阵乘法即可,如下所示:
Eigen::MatrixXd A, B;
A = X.adjoint().array().square();
B = X.array().square();
A * B;
这样就可以解决之前的计算错误问题了。
以上就是RcppEigen计算点乘与矩阵乘法连乘计算错误解决的详细内容,更多关于RcppEigen计算点乘与矩阵乘法的资料请关注编程学习网其它相关文章!
沃梦达教程
本文标题为:R语言RcppEigen计算点乘与矩阵乘法连乘算法错误解决


猜你喜欢
- 汇编语言程序设计之根据输入改变屏幕颜色的代码 2023-07-06
- Golang http.Client设置超时 2023-09-05
- R语言绘图数据可视化pie chart饼图 2022-12-10
- R语言-如何切换科学计数法和更换小数点位数 2022-11-23
- R语言关于二项分布知识点总结 2022-11-30
- Ruby on Rails在Ping ++ 平台实现支付 2023-07-22
- Swift超详细讲解指针 2023-07-08
- Go Web开发进阶实战(gin框架) 2023-09-06
- Ruby的字符串与数组求最大值的相关问题讨论 2023-07-22
- Ruby 迭代器知识汇总 2023-07-23