我需要一个Rcpp函数来根据输入类型进行操作。假设您想要对矩阵的每个元素加倍,但如果没有矩阵,则返回一个填充了特定维度的“2”的矩阵。在R中它就像是:
twoMatrix = function(oldMatrix = NULL, dim=c(10,10)){
if(!is.null(oldMatrix)){return(2*oldMatrix)}
return(matrix(2,nrow=dim[1],ncol=dim[2]))
}
但是当我尝试编写Rcpp函数时,我遇到了如何定义默认值以及检查用户是否选择了某种类型的问题。
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
NumericMatrix twoMatrixRcpp(NumericMatrix OldMatrix, IntegerVector dim){
...
}
如何设置默认参数,使其像R的NULL值一样工作,我可以检查用户是否指定了它的值?以及如何在函数内部检查它?