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

New to MATLAB?

how will use nested loop

Asked by manoj saini

manoj saini (view profile)

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

Image Analyst (view profile)

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

manoj saini (view profile)

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

Walter Roberson (view profile)

on 19 Dec 2012

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

manoj saini

manoj saini (view profile)

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

Walter Roberson (view profile)

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

Babak (view profile)

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

manoj saini (view profile)

on 19 Dec 2012

thanks this shows right answer

manoj saini

manoj saini (view profile)

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

Image Analyst (view profile)

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

Babak (view profile)

Answer by Walter Roberson

Walter Roberson (view profile)

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

0 Comments

Walter Roberson

Walter Roberson (view profile)

Answer by Sean de Wolski

Sean de Wolski (view profile)

on 18 Dec 2012

Code golf:

z=i'*b

1 Comment

Walter Roberson

Walter Roberson (view profile)

on 18 Dec 2012

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

Sean de Wolski

Sean de Wolski (view profile)

Contact us