-1
我正在使用Rcpp庫將C++中包含雙精度的向量向量轉換爲R中的矩陣。本質上我想調用此函數,並讓它在R中返回一個矩陣。但是,在這兩種方法中,控制檯打印「錯誤:矢量」。如何使用Rcpp庫將包含C++中雙精度的向量向量轉換爲R中的矩陣?
我的第一個是利用卷繞函數轉換方法:
// [[Rcpp::export]]
Rcpp::NumericMatrix returnRetrieval(string fileName){
//bm.real_psi is a globally declared vector of vectors
return Rcpp::wrap(bm.real_psi);
}
我的第二個方法是創建一個新的矩陣,並返回該給R代碼。
//also tried this and same error occured
Rcpp::NumericMatrix createMatrix(vector< vector <double> > input){
Rcpp::NumericMatrix storeContainer(input.size(), input[0].size());
for(int i = 0; i < input.size(); i++){
for(int j = 0; j <input[0].size(); j++){
storeContainer(i, j) = input[i][j];
}
}
return storeContainer;
}
這有點令人沮喪,所以如果任何人都可以幫忙,這將是非常感謝!謝謝:)
「NUMERIC(res)」表示什麼?我的控制檯上出現了與此相關的錯誤。 –
@AdiSidapara對不起,我用錯了宏。它應該是'REAL()'。該宏將檢索一個指向底層矢量數據的原始指針。 – bgoldst