#### A.1.6 Sparse Matrices in Oct-Files

There are three classes of sparse objects that are of interest to the user.

`SparseMatrix`

A double precision sparse matrix class

`SparseComplexMatrix`

A complex sparse matrix class

`SparseBoolMatrix`

A boolean sparse matrix class

All of these classes inherit from the `Sparse<T>`

template class, and so
all have similar capabilities and usage. The `Sparse<T>`

class was based
on Octave’s `Array<T>`

class and users familiar with Octave’s
`Array`

classes will be comfortable with the use of the sparse classes.

The sparse classes will not be entirely described in this section, due to their
similarity with the existing `Array`

classes. However, there are a few
differences due the nature of sparse objects, and these will be described.
First, although it is fundamentally possible to have N-dimensional sparse
objects, the Octave sparse classes do not allow them at this time; All
instances of the sparse classes **must** be 2-dimensional. This means
that `SparseMatrix`

is actually more similar to Octave’s `Matrix`

class than it is to the `NDArray`

class.