0

我有一个函数,它以向量作为输入并输出一个标量,我想将此函数应用于多个观察值。数据结构为矩阵(行是观察数,列是变量),函数是:

// [[Rcpp::export]]
double gaussianweight(arma::vec x, arma::mat H) {
  double c       = std::pow(2 * arma::datum::pi, -0.5 * x.n_rows);
  double s       = std::pow(arma::det(H), -1);
  arma::mat Hinv = arma::inv(H);

  return(c * s * std::exp(-0.5 * arma::dot(Hinv * x, Hinv * x)));
}

到a 的每一行向量arma::mat X。我将如何有效地做到这一点?一个循环遍历 X 行还是有更好的解决方案?我使用 R 的时间最多,并且真的习惯于尽可能避免循环。我尝试了.each_row()操作,但没有运气...

4

0 回答 0