"Ishan " <email@example.com> wrote in message news:firstname.lastname@example.org... > Still a Novice at matlab, trying to figure out what's wrong with my while > loop everytime I run it, matlab crashes. Here's my code: > omegax=0;omegay=0;omegaz=1;x=0;y=0;z=1; rand(1000); > omega=[omegax,omegay,omegaz];v=[x,y,z];w=1;alpha=0.9; > while 0<=z && z<=5; r=-log(rand); > v=v+r*omega; > end
I let this run for 10 minutes on my machine and it didn't crash. If by crash you really mean you received a crash report log and MATLAB disappeared and you can reproduce that behavior please send the log along with this code to Technical Support. If by crash you mean simply stops responding that's because this is an infinite loop as TideMan identified.
Because of the values of your omega* variables, only z is actually updated by this code. So I'd update this to be:
z = 1; while 0 <= z && z <= 5 z = z - log(rand); end
A second look indicates this can be simplified even more. Because RAND returns a value between 0 and 1 log(rand) will always be negative so you don't really need to check for 0 <= z; z starts and 1 and can only increase.