MATLAB Answers

manoj saini

how will use nested loop

Asked by manoj saini
on 18 Dec 2012

hello my problem is that i have 11 value for any variable suppose i=1:11 and have another variable suppose b=2:12 also has 11 values now my question is that i want to find out value for i=1 for z=i*b total 11 values and for i=2 another 11 value of z and so on how i can use nested loop

  3 Comments

Image Analyst
on 18 Dec 2012

It's not clear what you want. Please give an example with 2 11-element arrays, a and b, and what output(s) you want.

manoj saini
on 19 Dec 2012

for i=1 I want 11 values of i*b in one row for i=2 I want 11 values of i*b in one row for i=3 I want 11 values of i*b in one row AND SO ON..............

Walter Roberson
on 19 Dec 2012

Yes, and all of the Answers so far give you that.

Products

No products are associated with this question.

4 Answers

Answer by Muruganandham Subramanian on 19 Dec 2012
Edited by Muruganandham Subramanian on 19 Dec 2012
 Accepted answer

try this:

z = zeros(11,11); 
for a=1:11 
  for b=2:12    
      z(a,b)=a*b;  
  end
end
z(:,1)=[];

  2 Comments

Walter Roberson
on 19 Dec 2012

You declare z as 11 x 11, but then you use it as 11 x 12.

Because of the way MATLAB handles assignments to non-existant locations, this will work, but it does indicate a logic fault on your part.

@walter..I agre your point..


Answer by Babak
on 18 Dec 2012
 Z = zeors(11,11);
 for i=1:11 
  for b=2:12 
   z=i*b; 
 end
end

  4 Comments

manoj saini
on 19 Dec 2012

thanks this shows right answer

manoj saini
on 19 Dec 2012

sir now if my varible i=0.1:.11 and b also in point then how it will save

Image Analyst
on 19 Dec 2012

If the number you're multiplying by is a fractional number, like 0.1 or 0.11 then you'll have to separate your index from your number, like I think you originally had in your message where you had a and b instead of i and b. You could just make the loop index from 1 to 11 and then create the array index from it like arrayIndex = i / 10 and then use arrayIndex in z() or wherever.


Answer by Walter Roberson
on 18 Dec 2012
z = bsxfun(@times, i(:), b);

  0 Comments


Answer by Sean de Wolski
on 18 Dec 2012

Code golf:

z=i'*b

  1 Comment

Walter Roberson
on 18 Dec 2012

Provided "i" is not complex, which it normally is ;-)


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today