<div><div><br></div></div><div><br><div class="gmail_quote"><div>On Wed, Dec 14, 2016 at 1:24 AM Amina Shahzadi <<a href="mailto:aminashahzadi@gmail.com">aminashahzadi@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div class="gmail_msg">Hello Avraham --Happy to see you</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">My code is trying to produce a cube c which is going to be constructed by a vector a and matrix b.</div><div class="gmail_msg">And the number of rows in b and size of a must be same.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">So we can assume that if a is a vector of size 3, Then b must be 2 x 3 or 3 X 3 etc. </div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Thank you Avraham for quick response. I hope this will make my question more clear.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Best regards</div><div class="gmail_msg"><br class="gmail_msg"></div></div><div class="gmail_extra gmail_msg"></div><div class="gmail_extra gmail_msg"><br class="gmail_msg"><div class="gmail_quote gmail_msg">On Wed, Dec 14, 2016 at 4:46 PM, Avraham Adler <span class="gmail_msg"><<a href="mailto:avraham.adler@gmail.com" class="gmail_msg" target="_blank">avraham.adler@gmail.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_msg"><div class="gmail_extra gmail_msg"><div class="gmail_quote gmail_msg"><div class="gmail_msg"><div class="m_1426088852283644643h5 gmail_msg">On Tue, Dec 13, 2016 at 9:51 PM, Amina Shahzadi <span class="gmail_msg"><<a href="mailto:aminashahzadi@gmail.com" class="gmail_msg" target="_blank">aminashahzadi@gmail.com</a>></span> wrote:<br class="gmail_msg"><blockquote class="gmail_quote gmail_msg" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">Hello Friends and Prof. Dirk<br class="gmail_msg"><br class="gmail_msg"></div>I am pasting here a code which has a for loop depending on another for loop. <br class="gmail_msg"></div>I am getting zeros for cube c. I tried and searched a lot but did not get an example of this type. Would you please help in this regard?<br class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg">#include <RcppArmadillo.h><br class="gmail_msg">using namespace Rcpp;<br class="gmail_msg">using namespace RcppArmadillo;<br class="gmail_msg">using namespace arma;<br class="gmail_msg">//[[Rcpp::depends(RcppArmadillo)]]<br class="gmail_msg">//[[Rcpp::export]]<br class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg">arma::cube  exam(arma::vec a,  arma::mat b)<br class="gmail_msg">{<br class="gmail_msg">  int m = a.size();<br class="gmail_msg">  int n = b.n_rows;<br class="gmail_msg">  arma::cube c = zeros<cube>(n, m, n);<br class="gmail_msg">  for(int i=0; i<n; i++) {<br class="gmail_msg">    for(int j=0; j<m; j++) {<br class="gmail_msg">      for(int k=0; k<i; k++) {<br class="gmail_msg">          if(k==0) {<br class="gmail_msg">            c(i, j ,k) = c(i, j, k) + b(i, j);<br class="gmail_msg">          }<br class="gmail_msg">          else{<br class="gmail_msg">            c(i, j, k) = c(i, j, k) +  c(i-1, j, k) *b(i, j);<br class="gmail_msg">          }<br class="gmail_msg">         }<br class="gmail_msg">        }<br class="gmail_msg">      }<br class="gmail_msg">  return c;<br class="gmail_msg">}<br class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg">Thank You<span class="m_1426088852283644643m_-460033997963071725gmail-HOEnZb gmail_msg"><font color="#888888" class="gmail_msg"><br class="gmail_msg"></font></span></div><span class="m_1426088852283644643m_-460033997963071725gmail-HOEnZb gmail_msg"><font color="#888888" class="gmail_msg"><div class="gmail_msg">-- <br class="gmail_msg"><div class="m_1426088852283644643m_-460033997963071725gmail-m_-5403746280849366164gmail_signature gmail_msg"><i class="gmail_msg"><font face="comic sans ms,sans-serif" class="gmail_msg">Amina Shahzadi</font></i></div><br><br></div></font></span></div></div></div></div></blockquote></div></div><div class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"><div class="gmail_msg">Hello.<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">I haven't run your code, but it strikes me<br><br> that I cannot see where are you capturing the number of columns of b. <br><br>It's a bit confusing as I was always taught a matrix has m rows and n <br><br>columns. Be that as it may, your k==0 loop looks like it's trying to <br><br>copy over the original matrix to the first slice, but how do you know <br><br>that b has m columns, which is what you're assuming by letting j loop to<br><br> m. Unless you are assuming a square matrix?<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Even if you are, if your matrix is not the same length as your vector, I think there is an issue with your loop boundaries, unless I've misunderstood something, which is certainly possible.<br class="gmail_msg"><br class="gmail_msg">For example, assume a is {1, 2, 3} and b is the 2 x 2 of row 1: [1 2] and row 2: [3 4]. Thus m = 3 and n = 2.<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Step 1: i = j = k = 0: c(0, 0, 0) becomes b(0, 0) or 1.<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Step 2: i = 0, j = 1, k = 0: c(0, 1, 0) becomes b(0, 1) or 2.<br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Step 3: i = 0, j = 2, k = 0: c(0, 2, 0) becomes b(0, 2) ?!?! There is no b(0, 2), it's only a 2x2 matrix?<br class="gmail_msg"><br class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Similar to your previous questions, instead of posting code, can you please describe in words what it is you are trying to do? That may help.<br class="gmail_msg"></div><div class="gmail_msg"><br class="gmail_msg"></div>Avi <br class="gmail_msg"></div></div><br class="gmail_msg"></div></div><br><br></blockquote></div><br class="gmail_msg"><br clear="all" class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_extra gmail_msg">-- <br class="gmail_msg"><div class="m_1426088852283644643gmail_signature gmail_msg" data-smartmail="gmail_signature"><em class="gmail_msg"><font face="comic sans ms,sans-serif" class="gmail_msg">Amina Shahzadi</font></em></div><br><br></div></blockquote></div></div>Constructed how? Can you provide a simple set of inputs and the expected output? <div><br></div><div>Avi</div><div dir="ltr">-- <br></div><div data-smartmail="gmail_signature">Sent from Gmail Mobile</div>