Nom

mlist — Objet Scilab, définition d'une liste typée

Séquence d'appel

mlist(typ,a1,....an )

Paramètres

typ

vecteur de chaînes de caractères

ai

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

Description

Les objets de type mlist sont très similaires aux objets de type tlist. Si M est de type mlist, pour tout indice i qui n'est pas le nom d'un champ de la liste, M(i) n'est pas le i-ème champ de la liste mais est interprété comme le i-ème terme de M vu comme un vecteur. C'est la seule différence entre mlist et tlist.

Les champs des mlist doivent donc être manipulés par leur noms. Il peuvent aussi être manipulés avec les fonctions getfield et setfield.

Exemples

 
M=mlist(['V','name','value'],['a','b','c'],[1 2 3]);

// définition de la fonction d'affichage
deff('%V_p(M)','disp(M.name+'':''+string(M.value))')

// définition de la fonction d'extraction
deff('r=%V_e(i,M)',..
'r=mlist([''V'',''name'',''value''],M.name(i),M.value(i))')
M(2) // Le deuxième terme du vecteur M
M.value 

// définition de M comme une tlist
M=tlist(['V','name','value'],['a','b','c'],[1 2 3]);
M(2)

M('name')

// avec deux indices
M=mlist(['V','name','value'],['a','b';'c' 'd'],[1 2;3 4]);
deff('r=%V_e(varargin)',[
    'M=varargin($)';
    'H=[''V'',''name'',''value'']'
    'r=mlist(H,M.name(varargin(1:$-1)),M.value(varargin(1:$-1)))'])

M(:,2)

// tableau multidimensionnel
str=['a','b','c','d','e','f','g','h'];
n=hypermat([2,2,2],str);
v=hypermat([2,2,2],1:8);
M=mlist(['V','name','value'],n,v);
M(1,1:2,2)
 

Voir Aussi

tlist , list , overloading , getfield , setfield