Hello all,
 
I’ve been working with R for some years, but I am beginner to Rcpp (and have no 
experience with C++).
 
I am trying to set zeros in a matrix to Inf. In R I would do this:

x=matrix(8:0,3) 
x[which(x==0)]=Inf
 

My try with Rcpp and RcppArmadillo looked like this (as I do not know how it 
works with inf I just set it to 100 in a first step):
 
library(Rcpp)
library(inline)
library(RcppArmadillo)
 
code <- '
 arma::mat M0 = Rcpp::as<arma::mat>(a);
 arma::mat M1 = Rcpp::as<arma::mat>(a);
 arma::uvec xx = find (M1==0); 
M1(xx)=100;
 M1=M0+M1;
 return Rcpp::wrap(M1);
 '
tf <- cxxfunction(signature(a="numeric"), code,plugin="RcppArmadillo")
tf(x) 

But this just produces errors *… However, setting the index “manually” would 
work (changing M1(xx)=100 to M1(8)=100).
 
What do I have to change to make it work?
 
If I understood it correctly, it should be possible to use inf 
(http://arma.sourceforge.net/docs.html&constants). Can I do this simply by 
setting 
M1(xx)=inf; ?
 
Thanks to anyone who takes the time to answer my questions.
 
Best wishes,
Karin
 

* They are long and (I think) not very informative. But I can provide them if 
requested.                                          
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to