Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
5.4.0 - Русский

Change language to:
English - Français - 日本語 - Português -

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Data Structures > mlist

mlist

объект Scilab'а, определение матричноориентированного типизированного списка

Последовательность вызова

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

Аргументы

typ

вектор символьных строк.

ai

любой объект Scilab'а (матрица, список, строка, ...).

Описание

Объект mlist очень похож на объект tlist. Единственное отличие касается синтаксиса выделения и вставки: если M является mlist'ом, то для любого индекса i, который не является именем поля, M(i) более не является i-тым полем списка.

Семантика синтаксиса выделения и вставки должна задаваться функцией перегрузки.

Функция перегрузки для синтаксиса выделения b=a(i1, ..., in) имеет следующую последовательность вызова: b=%<тип_a>_e_(i1, ..., in, a).

и синтаксис [x1, ..., xm]=a(i1, ..., in) имеет следующую последовательность вызова: [x1, ..., xm]=%<тип_a>_e_(i1, ..., in,a).

Функция перегрузки, связанная с синтаксисом вставки a(i1, ..., in)=b имеет следующую последовательность вызова: a=%<тип_b>_i_<тип_a>(i1, ..., in, b, a).

Поля mlist'а должны тогда обозначаться по их именам. Они также могут обрабатываться с помощью функций getfield и setfield.

Примеры

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

//определение вывода на экран
function %V_p(M),disp(M.name+':'+string(M.value)),endfunction
 
//определение операции выделения
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,:) // вторая строка  M
M.value
 
//определение операции вставки
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) //вставка обычной матрицы в матрицу V
  M=varargin($)
  N=varargin($-1)
  M.value(varargin(1:$-2))=N
  M.name(varargin(1:$-2))=emptystr(N)
endfunction
M(1,1)=44
 
// в случае tlist'а
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')

Смотрите также

  • tlist — объект Scilab'а и определение типизированного списка
  • list — объект Scilab'а и функция определения списка
  • перегрузка — display, functions and operators overloading capabilities
  • getfield — выделение поля списка
  • setfield — внесение поля списка
Report an issue
<< матрицы Data Structures null >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Oct 01 17:41:10 CEST 2012