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!
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
0