Hi Dear This is the corresponding R code which I want to have the same result from rcpp code.
set.seed(11) a = matrix(runif(30), nrow=10, ncol=3) n=10 m=3 b = array(as.double(0), dim = c(n, m, n)) for(i in 1:n){ for(j in 1:m){ for(q in 1:i){ if(q==1){ b[i, j, q] = a[i, j]; } else{ b[i, j, q] = b[i-1, j, q-1] * a[i, j]; } } } } On Tue, Sep 27, 2016 at 3:22 PM, Avraham Adler <avraham.ad...@gmail.com> wrote: > Please give a simple example of an input and its expected output. > Unfortunately "run of a variable for loop" is too general for me to > understand. > > Avi > > On Mon, Sep 26, 2016 at 10:07 PM, Amina Shahzadi > <aminashahz...@gmail.com> wrote: > > Hi Dear > > > > My purpose is to make run of a variable for loop. Here I have assumed > else > > statement to be zero. Otherwise it could be anything for example in the > > following code. > > In this code, my main aim to run the slices loop according to rows. > > does it now look ok? > > > > > > Thank you > > > > #include <RcppArmadillo.h> > > using namespace Rcpp; > > using namespace RcppArmadillo; > > //[[Rcpp::depends(RcppArmadillo)]] > > //[[Rcpp::export]] > > arma::cube up(arma::mat a){ > > int m = a.n_cols; > > int n = a.n_rows; > > int p = a.n_rows; > > arma::cube b(n, m, p); > > for(int i=0; i<n; i++){ > > for(int j=0; j<m; j++){ > > for(int q=0; q<i; q++){ > > if(q==0){ > > b(i, j, q) = a(i, j); > > } > > else{ > > b(i, j, q) = b(i-1, j, q-1) * a(i, j); > > } > > } > > } > > } > > return b; > > } > > > > On Tue, Sep 27, 2016 at 2:51 PM, Avraham Adler <avraham.ad...@gmail.com> > > wrote: > >> > >> Hello. > >> > >> Once again, it is very unclear what you want to do. Can you please > >> explain, in English not code what your procedure intends to do, the > >> input you expect, and the output you expect? > >> > >> What it LOOKS like you want to do is to create an N x M x N cube where > >> the first slice is your matrix and the remaining slices are all 0. If > >> that is the case, There are much, much simpler ways to do it than to > >> traverse all N²M cells. The following should work. > >> > >> #include <RcppArmadillo.h> > >> using namespace Rcpp; > >> using namespace RcppArmadillo; > >> //[[Rcpp::depends(RcppArmadillo)]] > >> > >> //[[Rcpp::export]] > >> arma::cube fillup(arma::mat a){ > >> int m = a.n_cols; > >> int n = a.n_rows; > >> arma::cube C = arma::cube(n, m, n, arma::fill::zeros); > >> > >> C.slice(0) = a; > >> > >> return(C); > >> } > >> > >> Avi > >> > >> On Mon, Sep 26, 2016 at 5:59 PM, Amina Shahzadi < > aminashahz...@gmail.com> > >> wrote: > >> > Hi Dear > >> > > >> > I have a problem in using a variable for loop in using RcppArmadillo > >> > library. > >> > I have pasting here my code. It is executing but not giving the same > >> > results > >> > as its R code version gives. The results produced by it are really > >> > weird. I > >> > have checked it step by step. It is because of the for (int q=0; q<i; > >> > q++). > >> > I request tp please help how to handle it in cpp. > >> > > >> > The another question is I want to multiply the cube b(i, ,) by a > scalar. > >> > How > >> > can we consider the entire columns and slices of a cube for each of > the > >> > rows. "b(span(i), span(), span())" is not working for me. > >> > > >> > Thank you > >> > > >> > #include <RcppArmadillo.h> > >> > using namespace Rcpp; > >> > using namespace RcppArmadillo; > >> > //[[Rcpp::depends(RcppArmadillo)]] > >> > //[[Rcpp::export]] > >> > arma::cube up(arma::mat a){ > >> > int m = a.n_cols; > >> > int n = a.n_rows; > >> > int p = a.n_rows; > >> > arma::cube b(n, m, p); > >> > for(int i=0; i<n; i++){ > >> > for(int j=0; j<m; j++){ > >> > for(int q=0; q<i; q++){ > >> > if(q==0){ > >> > b(i, j, q) = a(i, j); > >> > } > >> > else{ > >> > b(i, j, q) = 0.0; > >> > } > >> > } > >> > } > >> > } > >> > return b; > >> > } > >> > > >> > -- > >> > Amina Shahzadi > > > > > > > > > > -- > > Amina Shahzadi > -- *Amina Shahzadi*
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel