gpt4 book ai didi

c++ - 如何计算 NumericVectors?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:23:06 25 4
gpt4 key购买 nike

我对使用 Rcpp 进行编程还很陌生,所以我正在尝试新事物以了解一切如何运作。我写了一个小程序来比较两个 NumericVectors 与 match() 函数。我还想打印出输入 Vectors 和 Output 但它似乎不起作用,因为我没有取回 Vectors 的条目而是存储位置(或类似的东西)。我还没有为 NumericVectors 找到任何类型的“打印”函数,但也许还有另一种方法?任何帮助将不胜感激。

这是我的代码:

#include <Rcpp.h>
using namespace Rcpp;
using namespace std;
// [[Rcpp::export]]
IntegerVector vergl(NumericVector eins, NumericVector zwei){
IntegerVector out = match(eins, zwei);
cout << eins << endl;
cout << zwei << endl;
cout << match(eins, zwei) << endl;
return out;
}

一个小例子:

vergl(c(1,2,3),c(2,3,4))

输出:

> vergl(c(1,2,3),c(2,3,4))
0xa1923c0
0xa192408
0xb6d7038
[1] NA 1 2

谢谢。

最佳答案

阅读gallery.rcpp.org/articles/using-rcout .

#include <RcppArmadillo.h>   

// [[Rcpp::depends(RcppArmadillo)]]

using namespace Rcpp;

// [[Rcpp::export]]
IntegerVector vergl(NumericVector eins, NumericVector zwei){
IntegerVector out = match(eins, zwei);
Rcout << as<arma::rowvec>(eins) << std::endl;
Rcout << as<arma::rowvec>(zwei) << std::endl;
Rcout << as<arma::rowvec>(out) << std::endl;
return out;
}

在 R 中:

vergl(c(1,2,3),c(2,3,4))
# 1.0000 2.0000 3.0000
#
# 2.0000 3.0000 4.0000
#
# nan 1.0000 2.0000
#
#[1] NA 1 2

关于c++ - 如何计算 NumericVectors?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27524065/

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