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 — altera o valor de um elemento de uma mlist, tlist ou list
Report an issue | ||
<< lstcat | Estruturas de Dados | null >> |