Scilab Function
Last update : 14/2/2006

list - Scilab object and list function definition

Calling Sequence

list(a1,....an)

Description

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

  • extraction : [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 : L($+1)=e.
  • append an element in head : L(0)=e. (note that after this operation e is at index 1, the initial elements being shifted on the right).
  • deletion : 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.
  • Remarks

    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 multi-dimensionnal arrays in scilab are in fact mlist).

    Matlab struct are also available.

    Examples

    l = list(1,["a" "b"])
    l(0) = "foo"
    l($+1) = "hello"
    l(2) = "toto"
    l(3) = rand(1,2)
    l(3) = null()
    lbis = list("gewurtz", "caipirina" ,"debug")
    lter = lstcat(l,lbis)
    size(lter) - size(lbis) - size(l)  // must be zero
    

    See Also

    null ,   lstcat ,   tlist ,   insertion ,   extraction ,   size ,   length ,