Matlab - Orden break falla para detener un lazo while

 
Vista:
sin imagen de perfil

Orden break falla para detener un lazo while

Publicado por dacvad (2 intervenciones) el 24/04/2014 01:08:47
Hola a todos.
Tengo un problema. Tengo el siguiente código:

1
2
3
4
5
6
7
8
9
10
11
12
13
y(1)=0
dt=0.1
t=0
i(1)=2
while 1
	y(i)=y(i-1)+dt*-y(i-1)
	t=t+dt
	if t==0.2
		break
	else
		i=i+1
	end
end


Tal como aparece ahí, el programa se detiene cuando t vale 0.2.
sin embargo, si cambio ese 0.2 por un 0.3, el lazo se ejecuta infinitamente y no consigo ver porqué.
¿Alguna sugerencia?
Gracias de antemano.
Saludos!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de JOSE JEREMIAS CABALLERO
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Orden break falla para detener un lazo while

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 24/04/2014 12:47:23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
y =
 
     0
 
 
dt =
 
    0.1000
 
 
t =
 
     0
 
 
i =
 
     2
 
 
y =
 
     0     0
 
 
t =
 
    0.1000
 
 
i =
 
     3
 
 
y =
 
     0     0     0
 
 
t =
 
    0.2000



Para que haga esa secuencia, es que esta programado el código.
Tu mismo le estas ordenando que haga eso.
El problema es tu interpretación del código. Revisa como funciona while, fi, vectores, break y mas comandos pertinentes de tu código.

Saludos.
JOSE JEREMÍAS CABALLERO
Asesoría online y Presencial en Matlab
programador en matlab
Servicios de programación matlab
[email protected]
El correo es para servicios de programación, toda ayuda gratuita es vía foro.


http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Orden break falla para detener un lazo while

Publicado por dacvad (2 intervenciones) el 27/05/2014 17:25:50
En efecto, eso es lo que espero. Pero si lees bien mi mensaje, verás que menciono que si el "if t==0.2" se cambia por "if t==0.3" el lazo ya no se detiene. Eso es el problema. Yo esperaría simplemente un paso adicional en el lazo, pero éste continúa repitiéndose infinitamente.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar