<div dir="ltr"><div><div>Hi Dear<br><br></div>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. <br></div><div>In this code, my main aim to run the slices loop according to rows.<br></div><div>does it now look ok?<br><br><br></div><div>Thank you<br></div><div><br>#include <RcppArmadillo.h><br>using namespace Rcpp;<br>using namespace RcppArmadillo;<br>//[[Rcpp::depends(RcppArmadillo)]]<br>//[[Rcpp::export]]<br>arma::cube up(arma::mat a){<br>  int m = a.n_cols;<br>  int n = a.n_rows;<br>  int p = a.n_rows;<br>  arma::cube b(n, m, p);<br>  for(int i=0; i<n; i++){<br>      for(int j=0; j<m; j++){<br>        for(int q=0; q<i; q++){<br>         if(q==0){<br>           b(i, j, q) = a(i, j);<br>         }<br>         else{<br>           b(i, j, q) = b(i-1, j, q-1) * a(i, j);<br>         }<br>      }<br>    }<br>  }<br>  return b;<br>}<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Sep 27, 2016 at 2:51 PM, Avraham Adler <span dir="ltr"><<a href="mailto:avraham.adler@gmail.com" target="_blank">avraham.adler@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello.<br>
<br>
Once again, it is very unclear what you want to do. Can you please<br>
explain, in English not code what your procedure intends to do, the<br>
input you expect, and the output you expect?<br>
<br>
What it LOOKS like you want to do is to create an N x M x N cube where<br>
the first slice is your matrix and the remaining slices are all 0. If<br>
that is the case, There are much, much simpler ways to do it than to<br>
traverse all N²M cells. The following should work.<br>
<span class=""><br>
#include <RcppArmadillo.h><br>
using namespace Rcpp;<br>
using namespace RcppArmadillo;<br>
//[[Rcpp::depends(<wbr>RcppArmadillo)]]<br>
<br>
//[[Rcpp::export]]<br>
</span>arma::cube fillup(arma::mat a){<br>
<span class="">  int m = a.n_cols;<br>
  int n = a.n_rows;<br>
</span>  arma::cube C = arma::cube(n, m, n, arma::fill::zeros);<br>
<br>
  C.slice(0) = a;<br>
<br>
  return(C);<br>
}<br>
<br>
Avi<br>
<div class="HOEnZb"><div class="h5"><br>
On Mon, Sep 26, 2016 at 5:59 PM, Amina Shahzadi <<a href="mailto:aminashahzadi@gmail.com">aminashahzadi@gmail.com</a>> wrote:<br>
> Hi Dear<br>
><br>
> I have a problem in using a variable for loop in using RcppArmadillo<br>
> library.<br>
> I have pasting here my code. It is executing but not giving the same results<br>
> as its R code version gives. The results produced by it are really weird. I<br>
> have checked it step by step. It is because of the for (int q=0; q<i; q++).<br>
> I request tp please help how to handle it in cpp.<br>
><br>
> The another question is I want to multiply the cube b(i, ,) by a scalar. How<br>
> can we consider the entire columns and slices of a cube for each of the<br>
> rows.  "b(span(i), span(), span())"  is not working for me.<br>
><br>
> Thank you<br>
><br>
> #include <RcppArmadillo.h><br>
> using namespace Rcpp;<br>
> using namespace RcppArmadillo;<br>
> //[[Rcpp::depends(<wbr>RcppArmadillo)]]<br>
> //[[Rcpp::export]]<br>
> arma::cube up(arma::mat a){<br>
>   int m = a.n_cols;<br>
>   int n = a.n_rows;<br>
>   int p = a.n_rows;<br>
>   arma::cube b(n, m, p);<br>
>   for(int i=0; i<n; i++){<br>
>       for(int j=0; j<m; j++){<br>
>         for(int q=0; q<i; q++){<br>
>          if(q==0){<br>
>            b(i, j, q) = a(i, j);<br>
>          }<br>
>          else{<br>
>            b(i, j, q) = 0.0;<br>
>          }<br>
>       }<br>
>     }<br>
>   }<br>
>   return b;<br>
> }<br>
><br>
> --<br>
> Amina Shahzadi<br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><em><font face="comic sans ms,sans-serif">Amina Shahzadi</font></em></div>
</div>