Search All of the Math Forum:
Views expressed in these public forums are not endorsed by
Drexel University or The Math Forum.



Re: how to vectorize this loop
Posted:
Apr 18, 2011 10:04 PM


"Mateusz Gos" <webmaster24@wp.pl> wrote in message <ioinh4$f1g$1@fred.mathworks.com>... > 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 forloop with n takes care of advancing n. Also the line "n = 1;" is totally unnecessary since the forloop 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); end
Roger Stafford



