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 _______________________________________________ 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