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
объект 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'а и функция определения списка
- перегрузка — возможности перегрузки отображения, функций и операторов
- getfield — выделение поля списка
- setfield — внесение поля списка
Report an issue | ||
<< lstsize | Data Structures | null >> |