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 - 日本語 - Русский

Please note that the recommended version of Scilab is 6.0.2. This page might be outdated.
See the recommended documentation of this function

Scilab help >> Data Structures > list


a Scilab object and a list definition function

Calling Sequence

list(a1, ..., an)


Creates a list with elements ai's which are arbitrary Scilab objects (matrix, list,...). Type of list objects is 15. list() creates the empty list (0 element).

Operations on lists


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

insertion at index i

L(i)=a (note that it is not an error to use L(i)=a with i > 1 + size(L) but some list entries are then undefined and their extraction gives raise to an error).

append an element in queue


append an element in head


After this operation e is an index 1, the initial elements being shifted on the right.


L(i)=null() removes the i-th element of the list L.

concatenation of two lists

L3 = lstcat(L1,L2).

number of elements of a list

you can use either nb_elm = size(L) or nb_elm = length(L).

iterations with a list

it is possible to use a list L with a for loop: for e=L,...,end is a loop with length(L) iterations, the loop variable e being equal to L(i) at the i-th iteration.


Scilab provides also other kinds of list, the tlist type (typed list) and the mlist type which are useful to define a new data type with operator overloading facilities (hypermatrices which are multidimensional arrays in Scilab are in fact mlist).

Matlab struct are also available.


l = list(1,["a" "b"]) // declaration of a basic list with a double & a vector of two strings
size(l) // Size is 2
// l(0) - Does not exist!
l(1) // Access to the double value
l(2) // Access to the vector of strings
size(l(2)) // Size is 1,2

l(0) = "foo" // Insert at the beginning of the list
// l(0) - still does not exist
l(1) // Is "foo"

l($+1) = "hello" // Insert at the end
l(2) = "toto" // Override my double
l(3) = rand(1,2) // Override my vector of string

l(3) = null() // Remove the third element

lbis = list("gewurtz", "caipirina" ,"debug") // Declare a new list
lter = lstcat(l,lbis) // Merge the two list
size(lter) - size(lbis) - size(l)  // must be zero

See Also

  • null — delete an element in a list
  • lstcat — list concatenation
  • tlist — Scilab object and typed list definition.
  • mlist — Scilab object, matrix oriented typed list definition
  • insertion — partial variable assignation or modification
  • extraction — matrix and list entry extraction
  • size — size of objects
  • length — length of object
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Apr 02 17:36:23 CEST 2013