1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
|
<?xml version="1.0" encoding="UTF-8"?>
<!--
* Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
* Copyright (C) 2002-2004 - INRIA - Vincent COUVERT
* Copyright (C) ???? - INRIA - Serge STEER
*
* This file must be used under the terms of the CeCILL.
* This source file is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
* are also available at
* http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
*
-->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:svg="http://www.w3.org/2000/svg" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:db="http://docbook.org/ns/docbook" version="5.0-subset Scilab" xml:lang="fr" xml:id="mfile2sci">
<info>
<pubdate>$LastChangedDate$</pubdate>
</info>
<refnamediv>
<refname>mfile2sci</refname>
<refpurpose> Fonction de conversion de M-file Matlab vers Scilab</refpurpose>
</refnamediv>
<refsynopsisdiv>
<title>Séquence d'appel</title>
<synopsis>mfile2sci(M-file-path [,result-path [,Recmode [,only-double [,verbose-mode [,prettyprintoutput]]]]])</synopsis>
</refsynopsisdiv>
<refsection>
<title>Paramètres</title>
<variablelist>
<varlistentry>
<term>M-file-path</term>
<listitem>
<para>une chaîne de caractères qui donne le chemin du M-file à traduire</para>
</listitem>
</varlistentry>
<varlistentry>
<term>result-path</term>
<listitem>
<para>une chaîne de caractères qui donne le répertoire où le résultat sera écrit. La valeur par défault est le répertoire courant.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>Recmode</term>
<listitem>
<para>Flag booléen, utilisé par translatepaths pour une conversion récursive. Doit être %F pour convertir un seul M-file. Valeur par défaut : %F</para>
</listitem>
</varlistentry>
<varlistentry>
<term>only-double</term>
<listitem>
<para>Flag booléen, si il vaut %T mfile2sci considère que les fonctions de calcul numériques ont été utilisées uniquement avec des données numériques (Aucune fonction de surcharge Scilab est requise). Valeur par défaut : %F</para>
</listitem>
</varlistentry>
<varlistentry>
<term>verbose-mode</term>
<listitem>
<para>mode d'affichage des information de conversion</para>
<variablelist>
<varlistentry>
<term>0</term>
<listitem>
<para>aucune information donnée</para>
</listitem>
</varlistentry>
<varlistentry>
<term>1</term>
<listitem>
<para>les ionformations sont écrites comme commentaires du fichier Scilab</para>
</listitem>
</varlistentry>
<varlistentry>
<term>2</term>
<listitem>
<para>les ionformations sont écrites comme commentaires du fichier Scilab et dans le fichier log</para>
</listitem>
</varlistentry>
<varlistentry>
<term>3</term>
<listitem>
<para>les ionformations sont écrites comme commentaires du fichier Scilab, dans le fichier log et affichées dans la fenêtre Scilab (Valeur par défaut).</para>
</listitem>
</varlistentry>
</variablelist>
</listitem>
</varlistentry>
<varlistentry>
<term>prettyprintoutput</term>
<listitem>
<para>Flag booléen, si il vaut %T le code généré est réarrangé. Valeur par défaut : %F</para>
</listitem>
</varlistentry>
</variablelist>
</refsection>
<refsection>
<title>Description</title>
<para>
M2SCI (et en particulier mfile2sci) est un ensemble d'outils de conversion de M-file vers Scilab. Il essaie
à chaque fois que c'est possible de remplacer l'appel à une fonction Matlab par la
primitive ou la fonction Scilab équivalente.
</para>
<para>
Pour convertir un M-file, entrer l'instruction Scilab :
mfile2sci(fichier)
</para>
<para>
où fichier est une chaîne de caractère qui donne le chemin du M-file.
mfile2sci va générer trois fichiers dans le même répertoire :
</para>
<variablelist>
<varlistentry>
<term><function-name>.sci</term>
<listitem>
<para>l'équivalent Scilab pour le M-file</para>
</listitem>
</varlistentry>
<varlistentry>
<term><function-name>.cat</term>
<listitem>
<para>le fichier d'aide Scilab associé à la fonction</para>
</listitem>
</varlistentry>
<varlistentry>
<term>sci_<function-name>.sci</term>
<listitem>
<para>la fonction Scilab requise pour convertir les appels à ce M-file dans d'autres M-files. Cette fonction peut être améliorée "à la main". Cette fonction est utile uniquement pour la conversion, pas pour utiliser la fonction convertie.</para>
</listitem>
</varlistentry>
</variablelist>
<para>
Des fonctions comme eye, ones, size, sum,... se comportent différemment
selon la dimension de leurs arguments. Quand mfile2sci ne peut pas
inférer les dimensions, il remplace ces fonctions par un appel à une
fonction d'émulation nommée mtlb_<function_name>. Pour une meilleure éfficacité,
ces fonctions peuvent être remplacées par les instructions Scilab équivalentes.
Pour avoir des informations sur le remplacement, entrer :
help mtlb_<function_name> dans la fenêtre de commande Scilab.
</para>
<para>
D'autres fonctions comme plot, n'ont pas d'équivalent direct en
Scilab. Elles sont aussi remplacées par des fonctions d'émulation nommées :
mtlb_<function_name>.
</para>
<para>
Quand la conversion peut être incorrecte ou améliorée, mfile2sci ajoute
des commentaires qui commencent par "//!" (suivant verbose-mode).
</para>
<para>
Un appel à <literal>mfile2sci()</literal> sans rhs lance une interface graphique pour aider à la sélection d'un fichier/répertoire et des options.
</para>
</refsection>
<refsection>
<title>Exemples</title>
<programlisting role="example"><![CDATA[
// Création d'une fichier .m simple
write(TMPDIR+'/rot90.m',['function B = rot90(A,k)'
'[m,n] = size(A);'
'if nargin == 1'
' k = 1;'
'else'
' k = rem(k,4);'
' if k < 0'
' k = k + 4;'
' end'
'end'
'if k == 1'
' A = A.'';'
' B = A(n:-1:1,:);'
'elseif k == 2'
' B = A(m:-1:1,n:-1:1);'
'elseif k == 3'
' B = A(m:-1:1,:);'
' B = B.'';'
'else'
' B = A;'
'end']);
// Conversion en Scilab
mfile2sci(TMPDIR+'/rot90.m',TMPDIR)
// Affichage du code
write(%io(2),read(TMPDIR+'/rot90.sci',-1,1,'(a)'))
// get it into scilab
exec(TMPDIR+'/rot90.sci')
// Exécution du code
m=rand(4,2);rot90(m,1)
]]></programlisting>
</refsection>
<refsection>
<title>Voir Aussi</title>
<simplelist type="inline">
<member>
<link linkend="translatepaths">translatepaths</link>
</member>
</simplelist>
</refsection>
<refsection>
<title>Auteurs</title>
<simplelist type="vert">
<member>V. Couvert</member>
<member>S. Steer</member>
</simplelist>
</refsection>
</refentry>
|