Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - Português - 日本語 -
Справка Scilab >> Data Structures > tlist

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)

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

  • процент — (%) специальный символ
  • syslin — определение линейной системы
  • list — объект Scilab'а и функция определения списка
  • mlist — объект Scilab'а, определение матричноориентированного типизированного списка
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 14 15:13:26 CET 2017