Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: Français - Português - 日本語 - Русский
Scilab Help >> Data Structures > tlist


Scilab object and typed list definition.


tlist(typ, a1, ..., an)



a character string or vector of character strings.


any Scilab object (matrix, list, string, ...).


tlist(typ, a1, ..., an) creates a typed-list with elements ai's. The typ argument specifies the list type. Such typed-list allows the user to define new operations working on these object through Scilab functions. The only difference between typed-list and list is the value of the type (16 instead of 15).

typ(1) specifies the list type (character string used to define soft coded operations).

If specified typ(i) may give the (i+1)-th element formal name.

Standard Operations on list work similarly for typed-list:


[x, y, z, ...]=l(v) where v is a vector of indices; [x, y, z]=l(:) extracts all the elements.




l(i)=null() removes the i-th element of the tlist l.

Note that the semantics of l.x=null() is undefined, but a definition can be given through the overloading mechanism.


Moreover if typ(2:n+1) are specified, user may point elements by their names.

We give below examples where tlist are used.

Linear systems are represented by specific typed-list e.g. a linear system [A,B,C,D] is represented by the tlist Sys=tlist(['lss';'A';'B';'C';'D';'X0';'dt'],A,B,C,D,x0,'c') and this specific list may be created by the function syslin.

Sys(2), Sys('A') or Sys.A is the state-matrix and Sys('dt') or Sys.dt is the time domain.

A rational matrix H is represented by the typed-list H=rlist(Num,Den,[]) where Num and Den are two polynomial matrices and a continuous time linear system with transfer matrix H may be created by syslin('c',H).

H(2), H('num') or H.num is the transfer matrix numerator.


// 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) = "example";

// Fields contents display

// Generic tlist display

// Overloading display for this type of tlist
function %listtype_p(mytlist)
  f = fieldnames(mytlist);

  // typeof(mytlist) <=> f(1)
  mprintf("Displaying a tlist of type: %s\n", typeof(mytlist));


  mprintf("-- Field ''%s'' --\n", f(1));
  mprintf("Contents: %s\n", sci2exp(mytlist(f(1))));


  mprintf("-- Field ''%s'' --\n", f(2));
  mprintf("Contents: %s\n", sci2exp(mytlist(f(2))));

// Display using overloading function

See also

  • percent — (%) special character
  • syslin — linear system definition
  • list — a Scilab object and a list definition function
  • mlist — Scilab object, matrix oriented typed list definition
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Thu Feb 14 14:57:23 CET 2019