Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
mlist
objeto Scilab, definição de listas com tipos orientadas matricialmente
Seqüência de Chamamento
mlist(typ,a1,....an )
Parâmetros
- typ
vector of character strings
- ai
any Scilab object (
matrix, list,string...
).
Descrição
Objetos mlist são bastante semelhantes a objetos tlist objects. A única diferença concerne às
sintaxes de extração e inserção (extraction e insertion): se M
é uma
mlist, para qualquer índice i
que não é um campo de
nome, M(i)
não é mais o i
-ésimo
campo da lista
A semântica da sintaxe de extração e inserção deve ser dada por uma função de (sobrecarga) overloading.
A função de overloading para sintaxe de extração
b=a(i1,...,in)
tem a seguinte seqüência de chamamento:
b=%<tipo_de_a>_e_(i1,...,in,a)
e a sintaxe [x1,..,xm]=a(i1,...,in)
tem a
seguinte seqüência de chamamento:
[x1,..,xm]=%<type_de_a>_e_(i1,...,in,a)
A função de overloading associada à sintaxe de inserção
a(i1,...,in)=b
tem a seguinte seqüência de chamamento:
a=%<type_de_b>_i_<type_de_a>(i1,...,in,b,a)
.
Os campos de um mlist devem, então, ser designados por seus nomes.
Eles também podem ser manipulados usando-se as funções
getfield
e setfield
.
Exemplos
M=mlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]); //Definindo exibição function %V_p(M),disp(M.name+':'+string(M.value)),endfunction //Definindo operação de extração function r=%V_e(varargin) M=varargin($) r=mlist(['V','name','value'],M.name(varargin(1:$-1)),M.value(varargin(1:$-1))) endfunction M(2,:) // a segunda entrada do vetor M M.value //Definindo operações de inserção function M=%V_i_V(varargin) M=varargin($) N=varargin($-1) M.value(varargin(1:$-2))=N.value M.name(varargin(1:$-2))=N.name endfunction M(1,1)=M(2,2) function M=%s_i_V(varargin) //inserção de uma matriz regular em uma matriz V M=varargin($) N=varargin($-1) M.value(varargin(1:$-2))=N M.name(varargin(1:$-2))=emptystr(N) endfunction M(1,1)=44 //caso de tlists M=tlist(['V','name','value'],['a','b';'c' 'd'],[1 2; 3 4]); M(2) M(2)='a'+string([1 2;3 4]) M('name')
Ver Também
- tlist — objeto do Scilab e definição de listas com tipos ("typed lists")
- list — objeto do Scilab e definição de lists ("listas")
- overloading — capacidades de overloading ("sobrecarga") de exibições, funções e operadores
- getfield — extração de campos de listas
- setfield — inserção de campos de listas
<< lstcat | Estruturas de Dados | rlist >> |