Rcpp: как получить номер строки / столбца для очищаемой матрицы в rcpp - PullRequest
0 голосов
/ 26 июня 2018

Я обнаружил, что мы не можем использовать .ncol() и .nrow() для матрицы с типом Nullable<NumericMatrix> в функции.Простой пример:

cppFunction('int getdim(Nullable<NumericMatrix> X_mat) {
  if(X_mat.isNotNull()){
    int col_num = X_mat.ncol();
    return col_num;
  }else{
    return 0;
  }
  }')

Есть ли способ удобно получить соответствующую информацию?Спасибо !!!

1 Ответ

0 голосов
/ 26 июня 2018

Как показывают существующие примеры, вы должны инстанцировать объект, когда находитесь в случае 'not NULL':

R> Rcpp::cppFunction('int getdim(Nullable<NumericMatrix> X_mat) {
+   if(X_mat.isNotNull()) {
+     NumericMatrix M(X_mat);
+     int col_num = M.ncol();
+     return col_num;
+   }else{
+     return 0;
+   }
+ }')
R> getdim(NULL)
[1] 0
R> getdim(matrix(1:4,2))
[1] 2
R> 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...