Archives du mot-clé MEX-files

Compiler du Fortran sous Windows (part2)

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.

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.

Lire la suite

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!