Suite de mon article Compiler du Fortran sous Windows il y a maintenant un bug report (très succinct à mon gout vu qu’il ne donne pas de solution) : In MATLAB 8.0 (R2012b), mex -setup cannont find Intel Visual Fortran Composer XE 2011 with Windows SDK 7.1 compiler on 32-bit Windows.
Archives du mot-clé MEX-files
Compiler du Fortran sous Windows
Compiler du Fortran sous Windows :
Situation :
- Windows XP 32-bit
– 2 versions MATLAB R2011b et R2012b
Pour faire simple , sans le support technique de MathWorks, il est impossible de compiler par exemple l’exemple timestwo.F ([matlabroot ‘\extern\examples\refbook\timestwo.F’]). Donc un grand merci au gars qui m’a aidé!! … entre nous c’est un bug MATLAB qui est à la cause de tout ça
Prérequis :
Avoir le compilateur Fortran qui va bien en R2011b et R2012b:
Intel Visual Fortran Composer XE 2011
Information qu’on retrouve sur le site du support :
compilateur 12b supporté
compilateur 11b supporté
La bonne nouvelle financière c’est qu’avoir Microsoft Windows SDK 7.1 est suffisant .
Une fois la trial téléchargée sur le site d’Intel , on peut commencer à mexer.
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 :
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:
apparait cette petite interface qui me permet de rajouter un filtre:
je vais pouvoir ajouter mon filtre *.mexw32 en cliquant sur le bouton + :
ce qui me rajoute un troisième élément à ma liste d’extension à exclure:
En cliquant sur OK, les changements prennent effet immédiatement. Et on voit que le mex file est à présent ignoré dans la comparaison:
Voilà moi je trouve ça super comme nouvelle fonctionnalité , encore une bonne raison d’upgrader en R2011a!