Comparer des dossiers avec un filtre

  • Citons les Releases Notes R2011a

Dans les releases notes de la R2011a , au chapitre Desktop Tools and Development Environment, MATLAB Version 7.12 (R2011a) on peut lire :

Filter Results in Folder Comparisons

You can now define filters to exclude unimportant differences when comparing folders. For example, you can exclude backup files or files created by a revision control system. Filters can save time when reviewing differences, especially when comparing many subfolders.

  • Exemple

Concrètement imaginons que je veuille comparer les répertoires \matlabroot\extern\examples\mex de la R2010b et de la R2011a:
sur ma machine en ligne de commande cela revient à taper:

>> visdiff(‘C:\Program Files\MATLAB\R2011a\extern\examples\mex’,’C:\Program Files\MATLAB\R2010b\extern\examples\mex’)

Pour info , ces répertoires donnent des exemples pour apprendre à écrire des MEX-files en C ou en Fortran.

et voilà ce que j’obtiens dans le Comparison Tool :

comparison tool

Seul un fichier est différent c’est le fichier binaire explore.mexw32 qui est un MEX file compilé à partir de l’exemple explore.c.
Évidemment comparer des fichiers binaires n’a pas de sens. Donc à partir de la R2011a il est possible de filtrer les résultats dans l’outil de comparaison.

  • Petite parenthèse sur explore.c

Ra je ne peux pas m’empêcher de vous parler de ce fichier qui est fort utile, non seulement pour écrire des Mex-files mais aussi pour comme son nom l’indique explorer ses variables MATLAB : structure , cellule , valeurs numériques, chaines de caractères … Par exemple imaginons que je crée la structure suivante :

>> aurelien.age=31

aurelien =

age: 31

>> aurelien.passion=’matlab’

aurelien =

age: 31
passion: ‘matlab’

Si je lance explore dans MATLAB , ce qui va marcher car il a été mexé sous Windows comme on dit dans le milieu geek , j’obtiens :

>> explore(aurelien)

————————————————
Name: prhs[0]
Dimensions: 1×1
Class Name: struct
————————————————

(1,1).age
————————————————
Dimensions: 1×1
Class Name: double
————————————————
(1,1) = 31

(1,1).passion
————————————————
Dimensions: 1×6
Class Name: char
————————————————
(1,1) matlab

C’est pas génial ça?!!!

  • Et maintenant utilisons le filtre!

En cliquant sur le bouton:

filter visdiff

apparait cette petite interface qui me permet de rajouter un filtre:

file and folders filters

je vais pouvoir ajouter mon filtre *.mexw32 en cliquant sur le bouton + :

add filter

ce qui me rajoute un troisième élément à ma liste d’extension à exclure:

mexw32

En cliquant sur OK, les changements prennent effet immédiatement. Et on voit que le mex file est à présent ignoré dans la comparaison:

matlab mex

Voilà moi je trouve ça super comme nouvelle fonctionnalité , encore une bonne raison d’upgrader en R2011a!

Laisser un commentaire