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 >> |
