Programming |

**Specialized Matrix Functions**

MATLAB has a number of functions that create different kinds of matrices. Some create specialized matrices like the Hankel or Vandermonde matrix. The functions shown in the table below create matrices for more general use.

**Function****Description**`ones`

Create a matrix or array of all ones.
`zeros`

Create a matrix or array of all zeros.
`eye`

Create a matrix with ones on the diagonal and zeros elsewhere.
`accumarray`

Distribute elements of an input matrix to specified locations in an output matrix, also allowing for accumulation.
`diag`

Create a diagonal matrix from a vector.
`magic`

Create a square matrix with rows, columns, and diagonals that add up to the same number.
`rand`

Create a matrix or array of uniformly distributed random numbers.
`randn`

Create a matrix or array of normally distributed random numbers and arrays.
`randperm`

Create a vector (1-by-n matrix) containing a random permutation of the specified integers.

Most of these functions return matrices of type `double`

(double-precision floating point). However, you can easily build basic arrays of any numeric type using the `ones`

, `zeros`

, and `eye`

functions.

To do this, specify the MATLAB class name as the last argument:

**Examples**

Here are some examples of how you can use these functions.

**Creating a Magic Square Matrix.** A magic square is a matrix in which the sum of the elements in each column, or each row, or each main diagonal is the same. To create a 5-by-5 magic square matrix, use the `magic`

function as shown.

Note that the elements of each row, each column, and each main diagonal add up to the same value: 65.

**Creating a Random Matrix.** The `rand`

function creates a matrix or array with elements uniformly distributed between zero and one. This example multiplies each element by 20:

A = rand(5) * 20 A = 3.8686 13.9580 9.9310 13.2046 14.5423 13.6445 7.5675 17.9954 6.8394 6.1858 6.0553 17.2002 16.4326 5.7945 16.7699 10.8335 17.0731 12.8982 6.8239 11.3614 3.0175 11.8713 16.3595 10.6816 7.4083

**Creating a Diagonal Matrix.** Use `diag`

to create a diagonal matrix from a vector. You can place the vector along the main diagonal of the matrix, or on a diagonal that is above or below the main one, as shown here. The `-1`

input places the vector one row below the main diagonal:

A = [12 62 93 -8 22]; B = diag(A, -1) B = 0 0 0 0 0 0 12 0 0 0 0 0 0 62 0 0 0 0 0 0 93 0 0 0 0 0 0 -8 0 0 0 0 0 0 22 0

Creating and Concatenating Matrices | Concatenating Matrices |

© 1994-2005 The MathWorks, Inc.