Matlab - Ayuda con funciones dentro de un bucle for

 
Vista:

Ayuda con funciones dentro de un bucle for

Publicado por Gerard (2 intervenciones) el 09/04/2011 20:58:42
Buenas! Estoy programando algo en Matlab que en principio no deberia ser complicado pero peta por algun sitio. El codigo es el siguiente:

alpha2=[0:0.2:4.6];
fletxes=alpha2;
for i=1:length(alpha2)
alfa2=alpha2(i);
alfa1=3*alfa2;
beta0=2/(180*pi);
girsolucio=fzero(@girfinal, beta0);
girinicial=girsolucio
[T,y]=ode45(@f3,[0 1],[girinicial,0,0,0]);
fletxes(i)=y(end,4)
end
plot(alpha2,fletxes)

el problema es que "girfinal" es una función que a su vez depende de otra función, que es "f3". Cuando lanzo el programa, es como si los datos "alfa2" y "alfa1" que se definen en el bucle no llegasen a la función "f3", que es la que los necesita y por eso me devuelve un error de que no estan definidos los parametros y de que "fzero" no puede continuar.

Si introduzco los "alfa1" y "alfa2" en el programa "f3.m" entonces funciona, pero claro, yo necesito que cambien en cada iteracion del "for"!!!!

Alguien tiene idea de cómo hacerlo??

Muchisimas gracias!
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

Ayuda con funciones dentro de un bucle for

Publicado por Gerard (2 intervenciones) el 09/04/2011 21:18:07
Creo que lo he podido solucionar con el comando "global".

Ahora parece que ya no hay ningun problema.

De todos modos, existe alguna solución más limpia??
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
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda con funciones dentro de un bucle for

Publicado por Dave (1094 intervenciones) el 13/04/2011 03:24:01
Hola Gerard;

Que bueno que hayas solucionado tu problema.
Saludos
Dave
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
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

Ayuda con funciones dentro de un bucle for

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 10/04/2011 02:16:03
Hola Gerard.
Tu programa que haz hecho solo quedaria asi, porque algunos pasos en la forma que estas haciendo son innecesarios. Mejor seria que pusieras la pregunta del problema o las formulas matematicas que estas utilizando, asi pueda ayudarte con certeza. Porque de que el programa se este ejecutando no implica que la solucion que este arrojando sea la correcta. Aca dejo tu programa, pero asi como esta no se va a ejecutar.


alpha2=[0:0.2:4.6];
beta0=2/(180*pi);
for i=1:length(alpha2)
[T,y]=ode45(@f3,[0 1],[girinicial,0,0,0]);
girinicial=fzero(@girfinal, beta0);
fletxes(i)=y(end,4)
end
plot(alpha2,fletxes)




Saludos:
JOSÉ JEREMIAS CABALLERO
ASESOR DE TESIS Y PROYECTOS DONDE SE NECESITA MATLAB
PROFESOR DE MATLAB Y METODOS NUMERICOS
PROGRAMADOR EN MATLAB
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