tlist — Objet Scilab. Définition d'une liste typée
tlist(typ,a1,....an )
chaîne de caractères ou matrice de chaînes de caractères
objet Scilab (matrice, liste, chaîne...
).
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
.
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=tlist(['r';'num';'den';'dt'],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
// 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)