• Domingo 19 de Mayo de 2024, 04:23

Autor Tema:  bucle abreviado  (Leído 1313 veces)

rodrikas

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
bucle abreviado
« en: Viernes 6 de Noviembre de 2009, 18:01 »
0
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

Richi254

  • Miembro activo
  • **
  • Mensajes: 56
  • Nacionalidad: es
    • Ver Perfil
Re: bucle abreviado
« Respuesta #1 en: Lunes 9 de Noviembre de 2009, 20:54 »
0
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.