GNU Octave Manual Version 3by John W. Eaton, David Bateman, Søren Hauberg Paperback (6"x9"), 568 pages ISBN 095461206X RRP £24.95 ($39.95) |

## 16.4 Special Utility Matrices

__Built-in Function:__**eye***(*`x`)__Built-in Function:__**eye***(*`n`,`m`)__Built-in Function:__**eye***(...,*`class`)- Return an identity matrix. If invoked with a single scalar argument,
`eye`

returns a square matrix with the dimension specified. If you supply two scalar arguments,`eye`

takes them to be the number of rows and columns. If given a vector with two elements,`eye`

uses the values of the elements as the number of rows and columns, respectively. For example,eye (3) => 1 0 0 0 1 0 0 0 1

The following expressions all produce the same result:

eye (2) == eye (2, 2) == eye (size ([1, 2; 3, 4])

The optional argument

`class`, allows`eye`

to return an array of the specified type, likeval = zeros (n,m, "uint8")

Calling

`eye`

with no arguments is equivalent to calling it with an argument of 1. This odd definition is for compatibility with Matlab.

__Built-in Function:__**ones***(*`x`)__Built-in Function:__**ones***(*`n`,`m`)__Built-in Function:__**ones***(*`n`,`m`,`k`, ...)__Built-in Function:__**ones***(...,*`class`)- Return a matrix or N-dimensional array whose elements are all 1.
The arguments are handled the same as the arguments for
`eye`

.If you need to create a matrix whose values are all the same, you should use an expression like

val_matrix = val * ones (n, m)

The optional argument

`class`, allows`ones`

to return an array of the specified type, for exampleval = ones (n,m, "uint8")

__Built-in Function:__**zeros***(*`x`)__Built-in Function:__**zeros***(*`n`,`m`)__Built-in Function:__**zeros***(*`n`,`m`,`k`, ...)__Built-in Function:__**zeros***(...,*`class`)- Return a matrix or N-dimensional array whose elements are all 0.
The arguments are handled the same as the arguments for
`eye`

.The optional argument

`class`, allows`zeros`

to return an array of the specified type, for exampleval = zeros (n,m, "uint8")

__Function File:__**repmat***(*`A`,`m`,`n`)__Function File:__**repmat***(*`A`, [`m``n`])__Function File:__**repmat***(*`A`, [`m``n``p`...])- Form a block matrix of size
`m`by`n`, with a copy of matrix`A`as each element. If`n`is not specified, form an`m`by`m`block matrix.

__Built-in Function:__**diag***(*`v`,`k`)- Return a diagonal matrix with vector
`v`on diagonal`k`. The second argument is optional. If it is positive, the vector is placed on the`k`-th super-diagonal. If it is negative, it is placed on the`-k`-th sub-diagonal. The default value of`k`is 0, and the vector is placed on the main diagonal. For example,diag ([1, 2, 3], 1) => 0 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0

Given a matrix argument, instead of a vector,

`diag`

extracts the`k`-th diagonal of the matrix.

The functions `linspace`

and `logspace`

make it very easy to
create vectors with evenly or logarithmically spaced elements.
See section 4.2 Ranges.

__Built-in Function:__**linspace***(*`base`,`limit`,`n`)- Return a row vector with
`n`linearly spaced elements between`base`and`limit`. If the number of elements is greater than one, then the`base`and`limit`are always included in the range. If`base`is greater than`limit`, the elements are stored in decreasing order. If the number of points is not specified, a value of 100 is used.The

`linspace`

function always returns a row vector.For compatibility with Matlab, return the second argument if fewer than two values are requested.

__Function File:__**logspace***(*`base`,`limit`,`n`)- Similar to
`linspace`

except that the values are logarithmically spaced from 10^base to 10^limit.If

`limit`is equal to pi,the points are between 10^base and pi,

*not*10^base and 10^pi,in order to be compatible with the corresponding Matlab function.

Also for compatibility, return the second argument if fewer than two values are requested.

See also linspace

ISBN 095461206X | GNU Octave Manual Version 3 | See the print edition |