[Rcpp-devel] how to reference a row of a matrix in C++ in Rcpp

Dirk Eddelbuettel edd at debian.org
Wed Mar 21 14:20:11 CET 2018


On 21 March 2018 at 10:39, Serguei Sokol wrote:
| Dear Akshay,
| 
| In previous messages, Dirk and I told you that this list was not
| the right place for beginner questions. Please stop asking that kind
| of questions here.

Or I will unsubscribe you here. Your choice.

Dirk
 
| Best,
| Serguei.
| 
| Le 21/03/2018 à 09:40, akshay kulkarni a écrit :
| > dear serguei,
| > 
| >                           I have another question:
| > 
| > If M is a matrix, M.nrow() should return the number of rows...but I encountered the following inconsistency:
| > 
| > 
| >  > M
| >       x  y  z
| > [1,] 1  0  0
| > [2,] 4  3  0
| > [3,] 3  1  1
| > [4,] 2 90 87
| > [5,] 9 76 23
| > [6,] 5 23 13
| >  > cppFunction('IntegerVector tccp5(IntegerMatrix M) { int x = M.nrow(); return x;}')
| >  > tccp5(M)
| > [1] 0 0 0 0 0 0
| > 
| > can you please explain what is happening( I am very new to Rcpp and C++)?
| > 
| > very many thanks for your time and effort...
| > yours sincerely,
| > AKSHAY M KULKARNI
| > 
| > 
| > 
| > ----------------------------------------------------------------------------------------------------------------------------------------------------------------
| > *From:* Serguei Sokol <serguei.sokol at gmail.com>
| > *Sent:* Tuesday, March 20, 2018 7:26 PM
| > *To:* akshay kulkarni; Rcpp R
| > *Subject:* Re: [Rcpp-devel] how to reference a row of a matrix in C++ in Rcpp
| > Le 20/03/2018 à 12:10, akshay kulkarni a écrit :
| >> dear members,
| >> 
| >>                               I came to know from stackoverflow that the following references a row in a matrix in C++:
| >> 
| >> M[2] references 2nd row of the Matrix.
| > SO is too big to check this assertion by ourself. Do you have a link?
| > 
| >> 
| >> 
| >> I am using Rcpp to write C++ code in R.
| >> 
| >> 
| >> However, I ended up with the following inconsistency:
| >> 
| >>  > M
| >>       x y z
| >> [1,] 1 1 1
| >> [2,] 2 2 2
| >> [3,] 3 3 3
| >> [4,] 4 4 4
| >> [5,] 5 5 5
| >> [6,] 6 6 6
| >>  > cppFunction('IntegerVector tccp3(IntegerMatrix M) { IntegerVector x = M[2]; return x;}')
| > Try
| > 
| > cppFunction('IntegerVector tccp3(IntegerMatrix M) { IntegerVector x = M(2,_); return x;}')
| > 
| > Best,
| > Serguei.
| > 
| > 
| >>  > tccp3(M)
| >> [1] 0 0 0
| >>  > cppFunction('IntegerVector tccp4(IntegerMatrix M) { IntegerVector x = M[1]; return x;}')
| >>  > tccp4(M)
| >> [1] 0 0
| >> 
| >> tccp3 should return (3,3,3) and tccp4 should return  (2,2,2). Can you please shed light on what is going on?
| >> 
| >> very many thanks for your time and effort....
| >> 
| >> Yours sincerely,
| >> AKSHAY M KULKARNI
| >> 
| >> 
| >> 
| >> _______________________________________________
| >> Rcpp-devel mailing list
| >> Rcpp-devel at lists.r-forge.r-project.org
| >> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
| > Rcpp-devel Info Page <https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel>
| > lists.r-forge.r-project.org
| > Discussion list for Rcpp, RInside and various packages using Rcpp or RInside. This list is subscriber-only, in other words in order to post to the list you must 
| > be ...
| > 
| > 
| > 
| >> 
| > 
| 
| _______________________________________________
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
| https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
-- 
http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list