Fonction M2SCI
Last update : 05/10/2004

m2scideclare - Donner des indices pour aider M2SCI...

### Description

La principale difficulté de M2SCI (`mfile2sci`) est de trouver ce que sont les variables : dimensions, type...

Pour aider cet outil, il suffit d'ajouter des commentaires commencant par `%m2scideclare` dans le fichier Matlab à convertir, (`%m2sciassume` était utilisée dans les versions précédentes de Scilab mais est maintenant obsolète).

La syntaxe de cette commande est :

`%m2scideclare nom_de_variable|dimensions|type_de_données|propriété`

avec :

  - nom_de_variable : nom de la variable déclarée. Ce nom peut être un champ de Struct (e.g. `x(1,2).nom`) ou décrire le contenu d'une Cell en utilisant la syntaxe `x(1,2).entries`. NOTEZ que pour les Cells et les Structs `*` peut être utilisé comme index.
  - dimensions : dimensions de la variable déclarée séparées par des espaces, si une dimension est inconnue, remplacez la par `?`. NOTEZ que les dimensions des chaînes de caractère doivent être identiques aux dimensions Matlab e.g. `1 6` pour la chaîne de caractères 'chaine'.
  - type_de_données: le type de donnée de la variable qui peut être :

    Type de donnée m2scideclare | Type Scilab "équivalent"
    Double | 1
    Boolean | 4
    Sparse | 5
    Int | 8
    Handle | 9
    String | 10
    Struct | Struct Matlab (16)
    Cell | Cell Matlab (17)
    Void | Sans type (0)
    ? | Type inconnu

  - propriété : propriété de la variable qui peut être :

    Propriété m2scideclare | "Equivalent" Scilab
    Real | Donnée réelle
    Complex | Donnée complexe
    ? | Property inconnue

    Ce champ est ignoré pour les types de données suivants : `Cell`, `Struct`, `String` et `Boolean`.

Toutes les informations données par `m2scideclare` sont comparées avec les données inférées, en cas de conflit, les données inférées sont conservées et un warning est affiché. Si vous êtes sûrs de vos informations, rapportez ce bug.

Voici quelques exemples :

  - `%m2scideclare var1|2 3|Double|Real` : var1 est déclarée comme une matrice de Doubles de taille 2x3 et contenant des données réelles
  - `%m2scideclare var2|2 3 10|Double|Complex` : var2 est déclarée comme une hypermatrice de Doubles de taille 2x3x10 et contenant des données complexes
  - `%m2scideclare var3(1,2).name|1 10|String|?` : var3 est déclarée comme un tableau de Structs contenant une chaîne de caractères de taille 1x10 dans le champ 'name' de la Struct à l'indice (1,2)
  - `%m2scideclare var4(1,5).entries|1 ?|Boolean|?` : var4 est déclarée comme un tableau de Cells contenant un vecteur ligne de booléens à l'indice (1,5)
  - `%m2scideclare var4(1,6).entries|? ?|Int|?` : var4 est déclarée comme un tableau de Cells contenant un vecteur ligne de booléens à l'indice (1,5) et des données entières à l'indice (1,6)
  - `%m2scideclare var5(*,*).name|1 ?|String|?` : var5 est déclarée comme un tableau de Structs contenant une chaîne de caractères de taille 1xn dans chaque champ 'name'
  - `%m2scideclare var6(2,*).entries|1 3|Double|Real` : var6 est déclarée comme un tableau de Cells contenant un veteur de Doubles de taille 1x3 dans chaque élement de sa seconde ligne.

### Authors

  V.C.