Bonjour à tous,

J'ai un problème qui m'embête et je me demande si je peux ou dois faire appel à try catch pour le résoudre. Pour vous expliquer, j'ai une certaine fonction qui à la fin me sort deux matrices Dref et Fref qui sont toutes deux constituées de trois vecteurs colonnes et qui sont de même taille, par exemple pour Dref:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
Dref=
 
1000 1000 10001
2000 2002 20003
Dans la même fonction j'ai besoin d'analyser ces deux matrices Dref et Fref afin de supprimer certaines lignes si des conditions sont remplies et sinon de les conserver telles quelles :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
if(size(Dref,1)>1)
   X=diff(Dref);
   Y=diff(Fref);
   X1=find(X(:,1)==0);
   if(numel(X1)>0)
   Dref(X1,:)=[];
   Fref(X1,:)=[];
   end
Mais je ne suis pas sur de l'écrire correctement : déjà je voudrais tester si Dref a plus d'une ligne, c'est pourquoi je pensais écrire if(size(Dref,1)) ; si cette condition est vérifiée je fais la différence par lignes deux à deux avec diff et je stocke les résultats dans X et Y. Ensuite, je recherche s'il y a des 0 dans la première colonne de X (et par conséquent de Y étant donnée la forme particulière de Dref et Fref dans ma fonction) et s'il y a des 0 je veux simplement enlever les lignes correspondantes sur Dref et Fref. Voilà mais si ces conditions ne sont pas remplies, Dref et Fref doivent être laissés intact. Comment pourrais-je faire,éventuellement avec try catch ?