# tlist

Objet Scilab. Définition d'une liste typée

## Séquence d'appel

    tlist(typ,a1,....an )

## Paramètres

typ

  chaîne de caractères ou matrice de chaînes de caractères

ai

  objet Scilab (`matrice, liste, chaîne...`).

## Description

Crée une `liste typée` avec les éléments `ai`. L'argument `typ` spécifie le nom du type. L'utilisateur peut redéfinir les opérateurs et primitives de Scilab pour ces nouveaux objets à l'aide de fonctions Scilab (voir `overloading`). La seule différence entre les listes typées et les listes (voir `list`) est la valeur numérique du type (16 au lieu de 15).

`typ(1)` spécifie le nom du type (cette chaîne de caractères est utilisée dans les noms des fonctions surchargeant les opérateurs et primitives).

S'il est spécifié, `typ(i)` donne le nom formel de l'élément `i+1` (voir plus bas dans les exemples).

Les opérations standard sur les listes fonctionnent similairement pour les listes typées (tlist).

extraction : `[x,y,z...]=l(v)` ou `v` est un vecteur d'indices; `[x,y,z]=l(:)` extrait tous les éléments.

insertion : `l(i)=a`

suppression : `l(i)=null()` supprime le i-ème élément de la `tlist l`. A noter que la sémantique de `l.x=null()` n'est pas définie, mais qu'il est possible de lui donner un sens par surcharge (voir overloading).

affichage

De plus si les composantes `typ(2:n+1)` sont spécifiées, les éléments peuvent être désignés par leur noms formels.

Voici quelques exemples d'utilisation des liste typées :

Dans Scilab, les systèmes dynamiques linéaires sont définis par une liste typée : le quadruplet `[A,B,C,D]` est représenté par la tlist `Sys=tlist(['lss';'A';'B';'C';'D';'X0';'dt'],A,B,C,D,x0,'c')` et cette tlist spécifique est créée par la fonction `syslin`.

Sys(2), Sys('A') ou Sys.A est la matrice d'état et Sys('dt') ou Sys.dt est le domaine temporel.

Une matrice rationnelle `H` est représentée par la tlist `H=rlist(Num,Den,[])` où `Num` et `Den` sont deux matrices polynomiales et un système dynamique linéaire (en temps continu) peut être créé sous la forme d'une matrice de transfert `H` par `syslin('c',H)`.

H(2), H('num') ou H.num est le numérateur de la matrice de transfert

## Exemples

    // tlist creation
    t = tlist(["listtype","field1","field2"], [], []);
    t.field1(1) = 10;
    t.field1(2) = 20;
    t.field2(1) = "Scilab";
    t.field2(2) = "tlist";
    t.field2(3) = "example";

    // Fields contents display
    disp(t.field1)
    disp(t.field2)

    // Generic tlist display
    disp(t)

    // Overloading display for this type of tlist
    function %listtype_p(mytlist)
      f = fieldnames(mytlist);

      // typeof(mytlist) <=> f(1)
      mprintf("Displaying a tlist of type: %s\n", typeof(mytlist));

      mprintf("\n");

      mprintf("-- Field ''%s'' --\n", f(1));
      mprintf("Contents: %s\n", sci2exp(mytlist(f(1))));

      mprintf("\n");

      mprintf("-- Field ''%s'' --\n", f(2));
      mprintf("Contents: %s\n", sci2exp(mytlist(f(2))));
    endfunction

    // Display using overloading function
    disp(t)

## Voir aussi

- null
- percent
- syslin
- list
- mlist