### 3.3 Object Sizes

The following functions allow you to determine the size of a variable or expression. These functions are defined for all objects. They return −1 when the operation doesn't make sense. For example, Octave's data structure type doesn't have rows or columns, so the `rows` and `columns` functions return −1 for structure arguments.

— Function File: columns (a)

> Return the number of columns of a.

— Function File: rows (a)

> Return the number of rows of a.

— Built-in Function: length (a)

> Return the `length' of the object a. For matrix objects, the length is the number of rows or columns, whichever is greater (this odd definition is used for compatibility with Matlab).

— Built-in Function: size (a, n)

> Return the number rows and columns of a.

> With one input argument and one output argument, the result is returned in a row vector. If there are multiple output arguments, the number of rows is assigned to the first, and the number of columns to the second, etc. For example,

>               size ([1, 2; 3, 4; 5, 6])
>                    => [ 3, 2 ]

>               [nr, nc] = size ([1, 2; 3, 4; 5, 6])
>                    => nr = 3
>                    => nc = 2

> If given a second argument, `size` will return the size of the corresponding dimension. For example

>               size ([1, 2; 3, 4; 5, 6], 2)
>                    => 2

> returns the number of columns in the given matrix.

— Built-in Function: isempty (a)

> Return 1 if a is an empty matrix (either the number of rows, or the number of columns, or both are zero). Otherwise, return 0.