<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>MATLAB pour les geeks &#187; MEX-files</title>
	<atom:link href="https://blog.developpez.com/matlab4geek/?feed=rss2&#038;tag=mex-files" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/matlab4geek</link>
	<description>&#62;&#62;why(393) </description>
	<lastBuildDate>Fri, 09 Jan 2015 13:05:12 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Compiler du Fortran sous Windows (part2)</title>
		<link>https://blog.developpez.com/matlab4geek/?p=512</link>
		<comments>https://blog.developpez.com/matlab4geek/?p=512#comments</comments>
		<pubDate>Tue, 16 Oct 2012 07:03:40 +0000</pubDate>
		<dc:creator><![CDATA[tug83]]></dc:creator>
				<category><![CDATA[R2012b]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[compilateur]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[Composer XE 2011 SP1]]></category>
		<category><![CDATA[fortran]]></category>
		<category><![CDATA[ifort]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[intel visual fortran]]></category>
		<category><![CDATA[mex]]></category>
		<category><![CDATA[MEX-files]]></category>
		<category><![CDATA[Microsoft Software Development Kit]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/matlab4geek/?p=512</guid>
		<description><![CDATA[Suite de mon article Compiler du Fortran sous Windows il y a maintenant un bug report (très succinct à mon gout vu qu&#8217;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.]]></description>
				<content:encoded><![CDATA[<p>Suite de mon article <a href="http://blog.developpez.com/matlab4geek/?p=419" target="_blank">Compiler du Fortran sous Windows</a> il y a maintenant un bug report (très succinct à mon gout vu qu&rsquo;il ne donne pas de solution)  : <a href="http://www.mathworks.com/support/bugreports/877961" target="_blank">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.</a> </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Compiler du Fortran sous Windows</title>
		<link>https://blog.developpez.com/matlab4geek/?p=419</link>
		<comments>https://blog.developpez.com/matlab4geek/?p=419#comments</comments>
		<pubDate>Wed, 10 Oct 2012 07:20:14 +0000</pubDate>
		<dc:creator><![CDATA[tug83]]></dc:creator>
				<category><![CDATA[R2011b]]></category>
		<category><![CDATA[R2012b]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[compilateur]]></category>
		<category><![CDATA[compiler]]></category>
		<category><![CDATA[Composer XE 2011 SP1]]></category>
		<category><![CDATA[fortran]]></category>
		<category><![CDATA[ifort]]></category>
		<category><![CDATA[intel]]></category>
		<category><![CDATA[intel visual fortran]]></category>
		<category><![CDATA[mex]]></category>
		<category><![CDATA[MEX-files]]></category>
		<category><![CDATA[Microsoft Software Development Kit]]></category>
		<category><![CDATA[SDK]]></category>

		<guid isPermaLink="false">http://blog.developpez.com/matlab4geek/?p=419</guid>
		<description><![CDATA[Compiler du Fortran sous Windows : Situation : - Windows XP 32-bit &#8211; 2 versions MATLAB R2011b et R2012b Pour faire simple , sans le support technique de MathWorks, il est impossible de compiler par exemple l&#8217;exemple timestwo.F ([matlabroot &#8216;\extern\examples\refbook\timestwo.F&#8217;]). Donc un grand merci au gars qui m&#8217;a aidé!! &#8230; entre nous c&#8217;est un bug [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Compiler du Fortran sous Windows :</p>
<p>Situation :<br />
-<strong> Windows XP 32-bit</strong><br />
&#8211; 2 versions MATLAB <strong>R2011b et R2012b</strong></p>
<p> Pour faire simple , sans le support technique de MathWorks, il est impossible de compiler par exemple l&rsquo;exemple <strong>timestwo.F</strong>  ([matlabroot &lsquo;\extern\examples\refbook\timestwo.F&rsquo;]). Donc un grand merci au gars qui m&rsquo;a aidé!! &#8230; entre nous c&rsquo;est un bug MATLAB qui est à la cause de tout ça <img src="https://blog.developpez.com/matlab4geek/wp-includes/images/smilies/icon_wink.gif" alt=";)" class="wp-smiley" /></p>
<p>Prérequis :<br />
Avoir le compilateur Fortran qui va bien en R2011b et R2012b:<br />
<strong>Intel Visual Fortran Composer XE 2011 </strong><br />
<a href="http://blog.developpez.com/matlab4geek/files/2012/10/intel.png"><img src="http://blog.developpez.com/matlab4geek/files/2012/10/intel.png" alt="" width="680" height="486" class="alignnone size-full wp-image-422" /></a></p>
<p>Information qu&rsquo;on retrouve sur le site du support :<br />
<a href="http://www.mathworks.fr/support/compilers/R2012b/win32.html#matlab" target="_blank">compilateur 12b supporté</a><br />
<a href="http://www.mathworks.fr/support/compilers/R2011b/win32.html#matlab" target="_blank">compilateur 11b supporté</a></p>
<p>La bonne nouvelle financière  c&rsquo;est qu&rsquo;avoir <strong>Microsoft Windows SDK 7.1</strong> est suffisant .<br />
Une fois la trial téléchargée sur le site d&rsquo;Intel , on peut commencer à mexer.</p>
<p><span id="more-419"></span></p>
<p>Voilà ce qui arrive en faisant un mex -setup:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">mex -setup</div></div>
<blockquote><p>
Welcome to mex -setup.  This utility will help you set up<br />
a default compiler.  For a list of supported compilers, see  </p>
<p>http://www.mathworks.com/support/compilers/R2012b/win32.html</p>
<p>Please choose your compiler for building MEX-files:</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Would you like mex to locate installed compilers [y]/n? y</div></div>
<p>Select a compiler:<br />
[1] Lcc-win32 C 2.4.1 in F:\R2012b\sys\lcc<br />
[2] Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files\Microsoft Visual Studio 10.0<br />
[3] Microsoft Visual C++ 2005 SP1 in C:\Program Files\Microsoft Visual Studio 8 </p>
<p>[0] None </p></blockquote>
<p>votre <strong>compilateur Intel n&rsquo;apparait pas</strong> &#8230;</p>
<p>Donc vous recommencez et cette fois ci à la question <em>Would you like mex to locate installed compilers [y]/n? </em>, vous répondez non .</p>
<p>A ce moment là apparait la liste des compilateurs supportés en R2012b:</p>
<blockquote><p>Select a compiler:<br />
[1] Intel C++ 12.0 (with Microsoft Software Development Kit (SDK) linker)<br />
[2] Intel C++ 12.0 (with Microsoft Visual C++ 2008 SP1 linker)<br />
[3] Intel C++ 12.0 (with Microsoft Visual C++ 2010 linker)<br />
[4] Intel C++ 11.1 (with Microsoft Visual C++ 2008 SP1 linker)<br />
[5] Intel Visual Fortran 12 (with Microsoft Software Development Kit (SDK) linker)<br />
[6] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 SP1 linker)<br />
[7] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2008 Shell linker)<br />
[8] Intel Visual Fortran 12.0 (with Microsoft Visual C++ 2010 linker)<br />
[9] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 SP1 linker)<br />
[10] Intel Visual Fortran 11.1 (with Microsoft Visual C++ 2008 Shell linker)<br />
[11] Lcc-win32 C 2.4.1<br />
[12] Microsoft Software Development Kit (SDK) 7.1<br />
[13] Microsoft Visual C++ 2005 SP1<br />
[14] Microsoft Visual C++ 2008 SP1<br />
[15] Microsoft Visual C++ 2010<br />
[16] Open WATCOM C++ </p>
<p>[0] None </p></blockquote>
<p>Vous choisissez donc le 5 :</p>
<blockquote>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Compiler: 5</div></div>
<p>Warning: The default location for Intel Visual Fortran compiler is:<br />
         &laquo;&nbsp;C:\Program Files (x86)\Intel\ComposerXE-2011&Prime;<br />
         but either that directory does not exist or the configuration<br />
         is invalid.</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Use C:\Program Files (x86)\Intel\ComposerXE-2011 anyway [y]/n? y</div></div>
<p>Please verify your choices: </p>
<p>Compiler: Intel Visual Fortran 12<br />
Location: C:\Program Files (x86)\Intel\ComposerXE-2011</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Are these correct [y]/n? y</div></div>
<p>Trying to update options file: D:\Documents and Settings\quefaurs\Application Data\MathWorks\MATLAB\R2012b\mexopts.bat<br />
From template:              F:\R2012b\bin\win32\mexopts\intelf12mssdk71opts.bat </p>
<p>Done . . . </p></blockquote>
<p>Donc déjà j’aurais du le sentir que ça n&rsquo;allait pas marcher vu le warning  précédent:</p>
<blockquote><p>Warning: The default location for Intel Visual Fortran compiler is:<br />
         &laquo;&nbsp;C:\Program Files (x86)\Intel\ComposerXE-2011&Prime;<br />
         but either that directory does not exist or the configuration<br />
         is invalid.
</p></blockquote>
<p>Et en effet mex timestwo.F me sort :</p>
<blockquote><p><strong>Could not find the compiler &laquo;&nbsp;ifort&nbsp;&raquo; on the DOS path</strong></p></blockquote>
<p><!--more--></p>
<p>Donc on recommence les étapes précédentes et cette fois ci à la question:<br />
Use C:\Program Files (x86)\Intel\ComposerXE-2011 anyway [y]/n?<br />
on répond non et <strong>on met le chemin exact où ma variable d&rsquo;environnement PATH me l&rsquo;indique</strong>  c&rsquo;est à dire:<br />
<strong>C:\Program Files\Intel\Composer XE 2011 SP1</strong></p>
<p>Cette fois ci je compile avec succès du Fortran. En revanche à chaque fois que je redémarre la 12b , je dois me retaper toutes les étapes précédentes <img src="https://blog.developpez.com/matlab4geek/wp-includes/images/smilies/icon_sad.gif" alt=":(" class="wp-smiley" /> . Donc pour que MATLAB comprenne que vous avez bel et bien un compilateur Fortran installé il faut demander à MathWorks le fichier <strong>intelf12mssdk71opts.stp </strong>.  En voici un extrait : </p>
<blockquote><p>
    #===================================================================<br />
    # intelf12mssdk71opts: Define where the Intel Visual Fortran 12.0<br />
    # compiler is installed.  Also sets language, version, and<br />
    # environment variables.<br />
    #===================================================================
</p></blockquote>
<p>Ensuite il faut copier ce fichier dans $MATLAB\bin\win32\mexopts\ (ce qui revient à écraser l&rsquo;existant)</p>
<p>Cette fois-ci des que vous taperez mex -setup, le compilateur Fortran apparaitra:</p>
<blockquote><p>
Would you like mex to locate installed compilers [y]/n? y</p>
<p>Select a compiler:<br />
<strong>[1] Intel Visual Fortran 12 (with Microsoft Software Development Kit (SDK) linker) in C:\Program Files\Intel\Composer XE 2011 SP1\</strong><br />
[2] Lcc-win32 C 2.4.1 in F:\R2012b\sys\lcc<br />
[3] Microsoft Software Development Kit (SDK) 7.1 in C:\Program Files\Microsoft Visual Studio 10.0<br />
[4] Microsoft Visual C++ 2005 SP1 in C:\Program Files\Microsoft Visual Studio 8 </p>
<p>[0] None </p>
<p>Compiler: </p></blockquote>
<p> Gagné!</p>
<p><!--more--></p>
<p>Pour que ça puisse marcher aussi en R2011b, il vous faudra copier  les 2 fichiers intelf12mssdk71opts.bat et intelf12mssdk71opts.scp de la R2012b dans le répertoire 11b équivalent :  $MATLAB\bin\win32\mexopts\ </p>
<p>Là franchement il faut avouer que compiler du Fortran n&rsquo;est pas trivial du tout quand l&rsquo;installation à la base est erronée. Enfin bon avec tout ça  maintenant plus de problème.</p>
<p>Liens utiles:<br />
<a href="http://www.mathworks.com/support/bugreports/776933" target="_blank">Why can&rsquo;t I use Intel Fortran Composer XE 2011 compiler with Microsoft Software Development Kit 7.1 linker for MEX-files in R2011b?</a> bug report qui devrait être remis à jour suite à mon Service Request .</p>
<p><a href="https://registrationcenter.intel.com/RegCenter/EvalForm.aspx?ProductID=1830" target="_blank">Télécharger le compilateur Fortran Studio XE 2013 pour Windows</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Comparer des dossiers avec un  filtre</title>
		<link>https://blog.developpez.com/matlab4geek/?p=113</link>
		<comments>https://blog.developpez.com/matlab4geek/?p=113#comments</comments>
		<pubDate>Thu, 10 Feb 2011 09:50:33 +0000</pubDate>
		<dc:creator><![CDATA[tug83]]></dc:creator>
				<category><![CDATA[Comparer des dossiers avec un filtre]]></category>
		<category><![CDATA[explore]]></category>
		<category><![CDATA[MEX-files]]></category>
		<category><![CDATA[r2010b]]></category>
		<category><![CDATA[r2011a]]></category>
		<category><![CDATA[structure]]></category>
		<category><![CDATA[visdiff]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[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 [&#8230;]]]></description>
				<content:encoded><![CDATA[<ul>
<li>Citons les Releases Notes R2011a</li>
</ul>
<p>Dans les releases notes de la R2011a , au chapitre <em>Desktop Tools and Development Environment, MATLAB Version 7.12 (R2011a)</em> on peut lire :</p>
<blockquote><p>
<em>Filter Results in Folder Comparisons</p>
<p>You can now <strong>define filters to exclude unimportant differences when comparing folders</strong>. 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.</em></p></blockquote>
<ul>
<li>Exemple </li>
</ul>
<p>Concrètement imaginons que je veuille comparer les répertoires <strong>\matlabroot\extern\examples\mex</strong> de la R2010b et de la R2011a:<br />
sur ma machine en ligne de commande cela revient à taper:</p>
<blockquote><p>&gt;&gt; <strong>visdiff</strong>(&lsquo;C:\Program Files\MATLAB\<strong>R2011a</strong>\extern\examples\mex&rsquo;,&rsquo;C:\Program Files\MATLAB\<strong>R2010b</strong>\extern\examples\mex&rsquo;)</p></blockquote>
<p>Pour info , ces répertoires donnent des exemples pour apprendre à écrire des MEX-files en C ou en Fortran.</p>
<p>et voilà ce que j&rsquo;obtiens dans le <strong>Comparison Tool</strong> :</p>
<blockquote><p><img src="http://blog.developpez.com/media/comparison tool matlab_01.jpg" width="640" height="510" alt="comparison tool" /></p></blockquote>
<p>Seul un fichier est différent c&rsquo;est le fichier binaire explore.mexw32 qui est un MEX file compilé à partir de l&rsquo;exemple explore.c.<br />
Évidemment <strong>comparer des fichiers binaires n&rsquo;a pas de sens</strong>. Donc à partir de la R2011a il est possible de filtrer les résultats dans l&rsquo;outil de comparaison.</p>
<ul>
<li>Petite parenthèse sur explore.c</li>
</ul>
<p>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&rsquo;indique explorer ses variables MATLAB : structure , cellule , valeurs numériques, chaines de caractères &#8230; Par exemple imaginons que je crée la structure suivante :</p>
<blockquote><p>&gt;&gt; aurelien.age=31</p>
<p>aurelien = </p>
<p>    age: 31</p>
<p>&gt;&gt; aurelien.passion=&rsquo;matlab&rsquo;</p>
<p>aurelien = </p>
<p>        age: 31<br />
    passion: &lsquo;matlab&rsquo;
</p></blockquote>
<p>Si je lance explore dans MATLAB , ce qui va marcher car il a été <strong>mexé sous Windows </strong>comme on dit dans le milieu geek , j&rsquo;obtiens :</p>
<blockquote><p>&gt;&gt; explore(aurelien)</p>
<p>&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Name: prhs[0]<br />
Dimensions: 1&#215;1<br />
Class Name: struct<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;</p>
<p>		(1,1).age<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Dimensions: 1&#215;1<br />
Class Name: double<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
	(1,1) = 31</p>
<p>		(1,1).passion<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
Dimensions: 1&#215;6<br />
Class Name: char<br />
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;<br />
	(1,1) matlab</p></blockquote>
<p>C&rsquo;est pas génial ça?!!!</p>
<ul>
<li>Et maintenant utilisons le filtre!</li>
</ul>
<p>En cliquant sur le bouton:</p>
<blockquote><p><img src="http://blog.developpez.com/media/filter visdiff.JPG" width="614" height="198" alt="filter visdiff" /></p></blockquote>
<p>apparait cette petite interface qui me permet de rajouter un filtre:</p>
<p><img src="http://blog.developpez.com/media/file and folders filters.JPG" width="283" height="289" alt="file and folders filters" /></p>
<p>je vais pouvoir ajouter mon filtre *.mexw32 en cliquant sur le bouton + :</p>
<p><img src="http://blog.developpez.com/media/add filter.JPG" width="271" height="122" alt="add filter" /></p>
<p>ce qui me rajoute un troisième élément à ma liste d&rsquo;extension à exclure:</p>
<p><img src="http://blog.developpez.com/media/mexw32.JPG" width="282" height="283" alt="mexw32" /></p>
<p>En cliquant sur OK, les changements prennent effet immédiatement. Et on voit que le mex file est à présent ignoré dans la comparaison:</p>
<p><img src="http://blog.developpez.com/media/ignore mex.JPG" width="640" height="510" alt="matlab mex" /></p>
<p>Voilà moi je trouve ça super comme nouvelle fonctionnalité , encore une bonne raison d&rsquo;upgrader en  R2011a! </p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
