The Math Forum

Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Math Forum » Discussions » Software » comp.soft-sys.matlab

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: how to vectorize this loop
Replies: 3   Last Post: Apr 19, 2011 9:41 AM

Advanced Search

Back to Topic List Back to Topic List Jump to Tree View Jump to Tree View   Messages: [ Previous | Next ]
Roger Stafford

Posts: 5,929
Registered: 12/7/04
Re: how to vectorize this loop
Posted: Apr 18, 2011 10:04 PM
  Click to see the message monospaced in plain text Plain Text   Click to reply to this topic Reply

"Mateusz Gos" <> wrote in message <ioinh4$f1g$>...
> hi,
> i would like to write the following loop in form of a vector, which I am guessing is possible (or not?):
> n = 1;
> for n = 1:20
> R = mean(measurements(1:n));
> n = n+1;
> end
> thanks,
> mat

- - - - - - - -
You should not have the "n = n+1;" line in there. The for-loop with n takes care of advancing n. Also the line "n = 1;" is totally unnecessary since the for-loop will start at n = 1 no matter how you set n in advance.

As your code stands at present you are taking twenty different mean operations, the first one the mean of the single number 1, then the mean of the two number 1 and 2, then that of 1, 2, and 3, and so forth. Is that what you had in mind? If so, all but the last one of these means from 1 to 20 have been overwritten because you placed them in the same variable R without indexing it with n.

If all you want is the single mean of the numbers from 1 to 20, then do this:

R = mean(1:20);

If you want the twenty different means, do this:

R = zeros(20,1);
for n = 1:20
R(n) = mean(1:n);

Roger Stafford

Point your RSS reader here for a feed of the latest messages in this topic.

[Privacy Policy] [Terms of Use]

© The Math Forum at NCTM 1994-2018. All Rights Reserved.