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

Problem with for (nested) loops

Asked by Abhivyakti on 3 Jul 2013

Hi

I am making a function. This is part of it. Here, I have a 1 x 256 array and i need to find out a corresponding value for each of its elements (256 values).

If i enter the set of commands (below) to my data individually, i get precise values of each of 256 elements of the array. But if I use it as a function, I only get values corresponding to the first and the last elements of the array, while the rest are all 0.

So basically there is some error with the loops that i've formed here.

  • The first loop signifies a summation from 1st to 'b'th element, i.e the element under consideration.
  • The second loop also signifies a summation from 'b'th element to the 256th element.
  • Finally, each value ('e') is stored in the matrix j.

Any help would be great. Am stuck on this from the past 2 days.

CODE:

for b=1:256
    for c=1:b
    w=l(1,c);
    f=0;
    f= (f + ( w* (log (w))));
    end
    y=-(f);
    for d=b:256
        v=l(1,d);
        g=0;
        g= (g + ( v* (log (v))));
    end
    u=-(g);
    i=normpdf(y,0,1);
    j=normpdf(u,0,1);
    e= -(log(i))-(log(j))-(y/i)-(u/j);
    j(1,b)=e;
end
val=j;

0 Comments

Abhivyakti

Products

No products are associated with this question.

1 Answer

Answer by the cyclist on 3 Jul 2013
Accepted answer

I think the main problem with your code (but there may be others) is that when you call the line

j = normpdf(u,0,1);

you are unintentionally (I assume) overwriting your vector j(1,b), so j(1,b) is written from scratch every time. You need different variable names there.

1 Comment

Abhivyakti on 8 Jul 2013

Thankyou so much! :)

the cyclist

Contact us