Étapes de la méthode de débogage du programme Matlab

1 contenu

      1) Débogage dans le code ;

  2) Méthode de débogage des points d'arrêt ;

  3) Méthode de débogage d'instructions ;

2. Méthode de débogage des points d'arrêt

       La façon la plus classique de déboguer du code est d'utiliser la méthode de mise en place de points d'arrêt.Voici les raccourcis clavier correspondants :

F12 : définir/annuler le point d'arrêt

F10 : Exécution en une seule étape

F11 : exécution en une seule étape, et sauter dans la fonction à exécuter lorsqu'il rencontre une fonction, tandis que F10 n'y sautera pas. C'est la différence évidente entre les deux

Maj + F11 : après avoir sauté dans la fonction, utilisez cette commande pour lancer la fonction

F5 : exécute toutes les instructions qui sont vues deux fois adjacentes au point d'arrêt, telles que : le point d'arrêt est dans la boucle for, puis F5 une fois, la boucle s'exécute une fois

Maj + F5 : quitter le débogage des points d'arrêt.

3. Méthode de débogage des instructions

     A-clavier + (retour)

  Je rencontre souvent certaines situations, telles que : lorsque des matrices sont multipliées par A*B (en supposant que A est connu et que B doit être calculé), la taille de la matrice B est difficile à déterminer. Il est difficile de déterminer s'il faut utiliser A *B ou A'*B. Est-ce possible ? Calculez d'abord B, observez les caractéristiques de B après le calcul, puis déterminez s'il faut utiliser A ou A' ? clavier peut résoudre ce problème.

  Comme son nom l'indique, le clavier est le sens du clavier, c'est-à-dire : donner le contrôle au clavier. En cours d'exécution du programme, comment revenir au programme lorsque le droit de contrôle est remis au clavier? donc:

clavier et retour

Généralement utilisé en combinaison. Si exécuté :

max_eig = max( eig(G'*pinv(F)*G) ); 
  Mais il est difficile de déterminer si G ou G', en utilisant le clavier peut être modifié pour :

clavier
P_tmp = real(m+1 - max_eig);
  Après avoir entré K>>, la taille de F et G peut être observée à ce moment, alors entrez dans Command Windows :

max_eig = max( eig(G'*pinv(F)*G) );
return;
  peut assurer la bonne exécution du programme.

  B-essai + (attraper) + fin

  On sait que le code de matlab s'exécute ligne par ligne, si une ligne d'erreur est rencontrée, le programme sera interrompu. try..catch peut rendre le code qui peut mal tourner sans affecter l'exécution continue du code suivant, et peut également vérifier, dépanner et résoudre certaines erreurs dans le programme, et améliorer la robustesse et la fiabilité du code.

essayer ... fin

try...end est utilisé pour essayer d'exécuter un morceau de code qui peut mal tourner, tel que :

m = rand(3,4);
n = magic(5);
try
    a = m*n;
    disp(a)
end
disp(m)
  Dans ce code, a = m*n fera une erreur, et la multiplication matricielle n'est pas satisfait des règles. Par conséquent, a = m*n et disp(a) ne sont pas exécutés, mais le disp(m) suivant est également exécuté.

essayer... attraper... finir

try...catch...end est utilisé pour vérifier les erreurs, telles que

m = rand(3,4);
n = magie(5);
essayer
     a = m*n;
     disp(a)
catch
     disp(size(m))
     disp(size(n))
end
disp(m)
  here, When le programme rencontre une erreur a = m*n;, il sautera à l'instruction dans le catch et continuera à s'exécuter, ce qui est un peu similaire à if...else...end.

dbstop dans le fichier

  Dans le fichier .m, insérez le dbstop dans l'instruction de fichier, comme le programme suivant, nous avons ajouté dbstop dans VMD, où VMD est une fonction :

load './data/Gdpyear.mat'
data=data-mean(data);% suppression de la valeur moyenne, c'est-à-dire, centrage des données
dbstop dans VMD
t=linspace(1992.0,2016.5,length(data)); % set x- axe
pour st=1:9
    K=st+1 ;
    [u, u_hat, omega] = VMD(data, length(data), 0, K, 0, 1, 1e-5); u= flipud(
    u);

Supongo que te gusta

Origin blog.csdn.net/Vertira/article/details/131798650
Recomendado
Clasificación