# length

Number of characters of a string. Number of elements of an array or list.

### Syntax

`n = length(M)`

### Arguments

M

a matrix (usual or polynomial or character string) or a list.

n

an integer or a matrix of integers.

### Description

For usual or polynomial matrix `n` is the integer equal to number of rows times number of columns of `M`. (Also valid for `M` a boolean matrix).

For matrices made of character strings (and in particular for a character string) `length` returns in `n` the length of entries of the matrix of character strings `M`.

The length of a list is the number of elements in the list (also given by `size`).

The length of an array M of cells or of structures is the number of elements of the array. It is equivalent to `size(M, "*")`.

The length of a mlist is by default the number of elements in the mlist, but you can overload it (see example). Note that for a non-string hypermatrix, there is no need to overload the function. Indeed, `length` returns the product of the dimensions of the hypermatrix.

`length('123')` is `3`. `length([1,2;3,4])` is `4`.

 WARNING : `length` of a sparse matrix returns the max of dimensions and not the product of the dimensions. (For example: `length(sparse(eye(12,2)))` returns `max(12,2)` and not `24`). Please use `size(...,'*')` with sparse matrix.

### Examples

```length([123 ; 456 ])
length(['hello world',SCI])
length(rand(2,2,2))```
```a = mlist(["myMlistT" "field1" "field2"],"aexample","bexampleb");
length(a)
// returns 3 default behaviour if length not overloaded for mlist

// we create an overload function for mlist of type myMlistT
function r=%myMlistT_length(M)
r = length(M.field1)
endfunction

length(a)
// returns 8 result of length(a.field1)```

 Version Description 5.4.0 This function allows overloading for mlist type. 6.0.0 The `length()` of any array C of cells was formerly always 3, whatever are the number of dimensions and the sizes of the array. It is now the number of elements of the array at null depth (without recursive counting), equal to `size(C, "*")`. The `length()` of any array S of structures was formerly equal to its number of fields +2, whatever are the number of dimensions and the sizes of the array. It is now the number of elements of the array at null depth, equal to `size(S, "*")`.