SoloCodigo

Programación Específica => Matlab => Mensaje iniciado por: rodrikas en Viernes 6 de Noviembre de 2009, 18:01

Título: bucle abreviado
Publicado por: rodrikas en Viernes 6 de Noviembre de 2009, 18:01
Hola,

Respecto a la cuestión relacionada con la optimización del bucle for (que plantee ayer), dejo el script de forma más abreviada
(tan sólo con el bucle for) para que sea más fácil de interpretar. Muchas gracias por todo!

% Te dato
n=length(Te);
for i=1:n
syms L
d=52;
pi=3.1416;
L=solve(L-(9.81*Te(i)^2/(2*pi))*tanh((2*pi/L)*d));
end
Título: Re: bucle abreviado
Publicado por: Richi254 en Lunes 9 de Noviembre de 2009, 20:54
Saca los datos d y pi fuera del bucle, de todas formas si son muchas iteraciones tardará mucho, prueba con while: por ejemplo:

% Te dato

k=0;
d=52;
pi=3.1416;    % MATLAB reconoce pi eh? no hace falta que lo crees.
while k<length(Te);
syms L
L=solve(L-(9.81*Te(i)^2/(2*pi))*tanh((2*pi/L)*d));
k=k+1;
end

A ver si así tarda menos, creo recordar que en estos casos era mejor usar while que for.
Suerte.