Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

To resolve issues starting MATLAB on Mac OS X 10.10 (Yosemite) visit: http://www.mathworks.com/matlabcentral/answers/159016

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.

manoj saini

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.

Muruganandham Subramanian on 19 Dec 2012

@walter..I agre your point..

Muruganandham Subramanian
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.

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

0 Comments

Walter Roberson
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 ;-)

Sean de Wolski

Contact us