tlist
объект Scilab'а и определение типизированного списка
Синтаксис
tlist(typ, a1, ..., an)
Аргументы
- typ
символьная строка или вектор символьных строк.
- ai
любой объект Scilab'а (
matrix
,list
,string
, ...).
Описание
tlist(typ, a1, ..., an)
создаёт типизированный список tlist
с элементами ai
. Аргумент typ
определяет тип списка. Такой типизированный список позволяет пользователю определять новые операции, действующие над этими объектами через функции Scilab-а. Единственная разница между tlist
и list
состоит в значении типа (16 вместо 15).
typ(1)
определяет тип списка (символьная строка, используемая для определения запрограммированных действий).
Если это определено, то typ(i)
может дать (i+1)
-тому элементу формальное имя.
Стандартные операции, определённые над списками list
работают и типизированными списками tlist
:
извлечение:
[x, y, z, ...]=l(v)
, где v
- вектор индексов;
[x, y, z]=l(:)
извлекает все элементы.
вставка:
l(i)=a
удаление:
l(i)=null()
удаляет i
-тый
элемент типизированного списка l
.
Заметьте, что семантика инструкции l.x=null() не определена, а определение может быть дано через механизм перегрузки. |
вывод на экран.
Более того, если typ(2:n+1)
определены, то пользователь может обращаться к элементам по их именам.
Ниже приводятся примеры, где используются tlist
.
Линейные системы представляются особыми типизированными списками, например, линейная система [A,B,C,D]
представляется типизированным списком Sys=tlist(['lss';'A';'B';'C';'D';'X0';'dt'],A,B,C,D,x0,'c')
и этот особый список можно создать с помощью функции syslin
.
Sys(2)
, Sys('A')
или Sys.A
является матрицей состояний, а Sys('dt')
или Sys.dt
является временной областью.
Матрица рациональных значений H
представляется типизированным списком
H=rlist(Num,Den,[])
, где Num
и Den
являются матрицами полиномов, а линейная система непрерывного времени с передаточной матрицей H
может быть создана с помощью syslin('c',H)
.
H(2)
, H('num')
или H.num
является числителем передаточной матрицы.
Примеры
// tlist creation t = tlist(["listtype","field1","field2"], [], []); t.field1(1) = 10; t.field1(2) = 20; t.field2(1) = "Scilab"; t.field2(2) = "tlist"; t.field2(3) = "пример"; // Отображение содержимого полей disp(t.field1) disp(t.field2) // Общее отображение типизированного списка disp(t) // Перегрузка отображения для этого типа типизированного списка function %listtype_p(mytlist) f = fieldnames(mytlist); // typeof(mytlist) <=> f(1) mprintf("Отображение типизированного списка типа: %s\n", typeof(mytlist)); mprintf("\n"); mprintf("-- Поле ''%s'' --\n", f(1)); mprintf("Содержимое: %s\n", sci2exp(mytlist(f(1)))); mprintf("\n"); mprintf("-- Поле ''%s'' --\n", f(2)); mprintf("Содержимое: %s\n", sci2exp(mytlist(f(2)))); endfunction // Отображение с помощью функции перегрузки disp(t)
Смотрите также
Report an issue | ||
<< struct | Data Structures | tree_show >> |