gpt4 book ai didi

rcpp - Rcpp 中的逐元素矩阵乘法

转载 作者:行者123 更新时间:2023-12-04 11:53:23 29 4
gpt4 key购买 nike

我正在处理需要逐元素矩阵乘法的代码。我试图在 Rcpp 中实现这一点,因为代码需要一些昂贵的循环。我对 Rcpp 还很陌生,可能会遗漏一些东西,但我无法使逐元素矩阵乘法工作。

// [[Rcpp::export]]

NumericMatrix multMat(NumericMatrix m1, NumericMatrix m2) {
NumericMatrix multMatrix = m1 * m2 // How can this be implemented ?
}

我可能遗漏了一些非常微不足道的东西,想问问是否有任何方法可以做到这一点(除了使用循环来迭代每个元素并相乘)。

提前致谢。

最佳答案

您可能想使用 RcppArmadillo(或 RcppEigen)进行矩阵的实际数学运算。

R> library(RcppArmadillo)
R> cppFunction("arma::mat schur(arma::mat& a, arma::mat& b) {
+ return(a % b); }", depends="RcppArmadillo")
R> schur(matrix(1:4,2,2), matrix(4:1,2,2))
[,1] [,2]
[1,] 4 6
[2,] 6 4
R>

逐元素乘法也称为 Schur (or Hadamard) multiplication .在 Armadillo 中, %支持它;见 Armadillo docs更多。

关于rcpp - Rcpp 中的逐元素矩阵乘法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19917023/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com