Sparse matrices are constructed using the `sparse` function.
The most general calling sequence is `sparse( u, v, w, m, n, max )`
where `u`, `v`, and `w` are row vectors each of the
same dimension, `m` and `n` are the dimensions of the matrix,
and `max` is the maximum number of elements the matrix is expected
to store. If we designate the matrix **A**, then the entries of the
matrix are assigned as follows:

>> for i=1:length(u), A(u(i), v(i)) = w(i) end

For example, the following creates a 20x20 matrix, with room for 30 entries, and fills that matrix with 10 values:

>> A = sparse( 1:10, 3:13, linspace( 1.53, 23.5, 10 ), 20, 20, 30 ) A = (1,3) 1.5300 (2,4) 3.9711 (3,5) 6.4122 (4,6) 8.8533 (5,7) 11.2944 (6,8) 13.7356 (7,9) 16.1767 (8,10) 18.6178 (9,11) 21.0589 (10,12) 23.5000

If you do not intend to change any values in a matrix, the last argument need not be specified, in which case, it will allocate as room for as many objects as there are in the initial three vectors.

>> A = sparse( 1:10, 3:13, linspace( 1.53, 23.5, 10 ), 20, 20 ); % same as sparse( 1:10, 3:13, linspace( 1.53, 23.5, 10 ), 20,10)

Unfortunately, if you now assign one more value, e.g., `A(1,1) = 3`,
it must allocate an new larger block of memory. It will double the number
of stored elements, so this memory allocation will not need to be performed
at each new allocation. Consider:

>> A = sparse( 1:10, 2:11, 3:12, 20, 20, 12 ); >> B = sparse( 1:10, 2:11, 3:12, 20, 20 ); % defaults to storing 10 objects >> whos Name Size Bytes Class A 20x20 228 sparse array B 20x20 204 sparse array Grand total is 22 elements using 432 bytes >> A(1,5) = 3; >> B(1,5) = 3; >> whos Name Size Bytes Class A 20x20 228 sparse array B 20x20 324 sparse array Grand total is 32 elements using 552 bytes

Note that the space allocated for matrix **B** has jumped to
size 324.

Converting a matrix into a sparse matrix is as easy as:

>> D = diag( 5:20 ); >> sparse( D );

You can find out about sparse functions by entering
`help sparfun` at the prompt. Some examples are
`speye` (a sparse eye function), `eigs`
(a sparse eigenvalue function), `normest` (find
an estimate of the norm), and `condest` (find
an estimate of the condition number.)