SoloCodigo
Programación Específica => Matlab => Mensaje iniciado 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
-
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.