# list

a Scilab object and a list definition function

### Syntax

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`

.After this operation`e`

is an 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
- 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
multidimensional arrays in Scilab are in fact *mlist*).

Matlab *struct* are also available.

### Examples

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 — deletes a list component or a field of a structure, Mlist, or Tlist
- lstcat — list concatenation
- list2vec — Concatenates list entries in a matrix.
- vec2list — Inverse function of list2vec.
- 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

## Comments

Add a comment:Please login to comment this page.