mlist - Objet Scilab, définition d'une liste typée
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)
tlist, list, overloading, getfield, setfield,