mlist — Objet Scilab, définition d'une liste typée
mlist(typ,a1,....an )
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.
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)