next up previous
Next: L'optimiseur (profiler) Up: Le débogueur de MATLAB Previous: Les commandes du débogueur

Débogage de l'exemple

>> dbstop variance 3
>> variance(v)
3   tot = sqsum(x,mu);
K>> whos   % ne donne que les variables locales
  Name      Size         Bytes  Class

  mu        1x1              8  double array
  x         1x5             40  double array

Grand total is 6 elements using 48 bytes

K>> mu

mu = 3

K>> x

x = 1     2     3     4     5

K>> dbstep
4   y = tot / (length(x)-1);

K>> tot

tot = 4   % il y a un pb ici, dans le calcul de tot

K>> tot=10;   % on impose la bonne valeur
K>> dbcont

ans = 2.5000  % et on a le bon résultat

L'erreur est dans sqsum.m

>> dbstop sqsum 3
>> dbclear variance  % enlève les breaks ds variance
>> variance(v)
3   for i=1:length(m)
K>> dbstep
4     tot = tot + ((x(i)-m)^2);
K>> dbstep
5   end
K>> dbstep
End of function /home/prof/ricou/sqsum.m.
K>> i      % il n'y a qu'1 passage dans la boucle
i = 1      % au lieu de 5
L'erreur est dans l'argument de length : ça devrait être x et non m.



Olivier Ricou
10/6/1997