MATLAB has two matrix storage modes. *Full* storage is the default
and stores the value of each element; it is appropriate for matrices with
many nonzero elements. *Sparse* storage is used only when you explicitly
invoke it (though it propagates somewhat thereafter); it stores only the
values of the nonzero elements (and their integer indices, of course).
It is therefore appropriate for matrices with few nonzero elements, i.e.
sparse matrices.

The advantages of sparse matrices are size and speed. A 5000 by 5000
matrix in full storage requires space for 25 million complex numbers
even if only 50,000 are nonzero. The same 50,000-nonzero element
matrix, in sparse storage, would store 50,000 complex numbers and
50,000 pairs of integer indices, less than .5% the space (less than
one megabyte, instead of 200 meg). Similarly, solving *Ma*=*b* where *M*
is such a matrix would take most of a day in full storage, and less than
half a minute in sparse. Obviously if you are dealing with large, sparse
matrices, you should take advantage of these features.

Some sparsity functions are useful for other purposes, as sparsity is connected to graph and tree theory.

See **help sparse** for a description of sparse storage mode, and
**help sparfun** for a list of the sparse matrix functions.
The **MATLAB User's Guide** (see ** Help**) has (as usual) a much fuller
description of the nature, uses, and manipulation of sparse matrices.

Sat Mar 21 21:42:28 EST 1998