如何解决在 RcppEigen 中分配数字向量
我有一个包含以下代码的 cpp 文件:
#include <RcppEigen.h>
//[[Rcpp::depends(RcppEigen)]]
using namespace Eigen;
//[[Rcpp::export]]
Eigen::VectorXd memory(const double u,const double v,const double w){
Eigen::VectorXd A(3);
A << u,v,w;
return(A);
}
整个 R 会话因此而终止。为什么会发生这种情况?任何人都可以帮忙吗?我怎样才能正确地写出这个数字向量?
解决方法
Rcpp 和 RcppEigen 是胶水包,可能会对现有组件产生副作用。因此,用于分配矩阵的 <<
习语可能在 Eigen 文档中,但可能会被 Rcpp 输入/输出操作所掩盖。
在另一个说明中,您的标题有点过时。这不是“写”,您正在尝试分配。哪个...您可以直接从 R 中更轻松地执行此示例:
#include <RcppEigen.h>
//[[Rcpp::depends(RcppEigen)]]
// [[Rcpp::export]]
void showVec(Eigen::VectorXd A) {
Rcpp::Rcout << A << std::endl;
}
/*** R
v <- c(1.1,2.2,3.3)
showVec(v)
*/
我们可以从 R 调用并执行底部部分,如果我们只是在其上调用 Rcpp::sourceCpp()
:
> Rcpp::sourceCpp("~/git/stackoverflow/68453452/answer.cpp")
# lots of compiler noise omitted here
> v <- c(1.1,3.3)
> showVec(v)
1.1
2.2
3.3
>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。