matlab timer timeout?

matlab timer timeout? - Divers - Programmation

Marsh Posté le 05-02-2009 à 12:02:08    

Bonjour,  
 
J'ai un problème de temps de calcul et de fonction qui ne converge dans un programme MATLAB que j'écris.  
 
Le morceau de codes qui m'intéresse ressemble à cela grosso modo:  
 
%input est une matrice de LG (valeur sans intérêt ici) sur N par exemple  
x=[] % est créé au départ pout stocker les résultats  
%paraini sont les paramètres initiaux de ma fonction.  
% Si je les modifie, assouplis, ma fonction devrait converger et me produire mon output que je veux stocker dans x  
%La fonction doit s'appliquer N fois (souvent plus de 100 ou 200 fois)  
% j'ai besoin de commencer par les paraini contraignants pour avoir un output de la meilleure qualité possible  
% chaque étape peut prendre plusieurs secondes (dizaines de secondes)  
% au global ça peut durer plusieurs heures  
 
for i=1:N  
x(i)=mafonction(input(:,i),paraini);  
end  
 
le problème est que pour certaines des itérations sur i, mon programme bugge  
tout se coupe  
j'obtiens un "maximum recursionlimit of 1000 reached"  
changer ce paramètre n'est pas une solution satisfaisante, parfois ça ne converge vraiment pas  
ça m'arrangerait vraiment de pas faire le travail bloc par bloc et de devoir éventuellement rependre les itérations problèmatiques une par une.  
 
il y a assurément une solution mais je n'arrive pas à la trouver/comprendre  
Objectif  
Que j'obtienne un output à chaque itération sur i en autorisant un assouplissement de paraini pour les itérations qui posent problème.  
la solution doit passer par des stop, des timer, des stopFcn  
En gros, il faut que la séquence à problème stoppe (sans planter tout le programme) si un temps limite de calcul est dépassé ou que l'on approche de la borne recursionlimit et que je puisse modifier/abaisser les paramètres (s'il le faut plusieurs fois) afin de donner des conditions plus favorables à mafonction et ainsi obtenir un ouput.  
 
En espérant avoir été clair  
 
Merci par avance de votre aide et idées  
 
Nicolas

Reply

Marsh Posté le 05-02-2009 à 12:02:08   

Reply

Marsh Posté le 06-02-2009 à 14:04:14    

C'est bon!!!
j'ai trouvé une solution
Il suffit de mettre une structure avec des "try" et des "catch" pour pouvoir changer de paramètres si besoin
 
Nicolas

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed