For Loop Index Problems
Rob Mahurin
rob at utk.edu
Thu Jun 4 15:33:36 CDT 2009
On Jun 4, 2009, at 2:40 PM, josgau33 wrote:
> I am having a simple problem with the for loop and its index.
> Basically,
> here is a simple program to illustrate the problem I am having.
>
> i=1;
> a=[1 2 3 8 8 8 3 2 1];
>
> for i=1:length(a)
> i
> while a(1,i)==8
> i=i+1;
> i
> end
> i
> i=i+1;
> i
> end
>
> This gives the output shown below:
> [...]
> My question is... Is there any way to avoid the resetting of the
> index? Is
> there some sort of for loop where the user is allowed to control
> the index,
> and not the computer. If not, can anybody show me modifications to
> the code
> that would solve this problem? I cannot seem to figure it out on my
> own.
> Suggestions would be helpful too. Thank you,
Octave's "for" is more like a "foreach" in other languages: at the
beginning of each loop the next element from the list is copied into
the loop variable. Compare these two one-liners
for i = 1:10; printf("%2d %2d ", i, (i += 3) ); i, endfor
i = 1; while i < 10; printf("%2d %2d ", i, (i += 3) ); i, endwhile
If you want to control the loop variable use a while loop.
Rob
--
Rob Mahurin
Department of Physics and Astronomy
University of Tennessee 865 207 2594
Knoxville, TN 37996 rob at utk.edu
More information about the Help-octave
mailing list