Skip to content
Back to formatted view

Raw Message

Message-ID: <e7654112-d255-d971-7351-cc9c53e4947c@gmail.com>
Date: 2018-03-20T13:56:51Z
From: Serguei Sokol
Subject: [Rcpp-devel] how to reference a row of a matrix in C++ in Rcpp
In-Reply-To: <SL2P216MB0091A7BC02329005565404B6C8AB0@SL2P216MB0091.KORP216.PROD.OUTLOOK.COM>

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
>