Please note that the recommended version of Scilab is 6.1.1. This page might be outdated.

However, this page did not exist in the previous stable version.

# sparse

sparse matrix definition

### Syntax

sp=sparse(X) sp=sparse(ij,v [,mn])

### Arguments

- X
real or complex or boolean full (or sparse) matrix

- ij
two columns integer matrix (indices of non-zeros entries)

- v
vector

- mn
integer vector with two entries (row-dimension, column-dimension)

- sp
sparse matrix

### Description

`sparse`

is used to build a sparse matrix. Only non-zero entries
are stored.

`sp = sparse(X)`

converts a full matrix to sparse form by
squeezing out any zero elements. (If `X`

is already sparse
`sp`

is `X`

).

`sp=sparse(ij,v [,mn])`

builds an `mn(1)`

-by-`mn(2)`

sparse matrix with `sp(ij(k,1),ij(k,2))=v(k)`

.
`ij`

and `v`

must have the same column dimension.
If optional `mn`

parameter is not given the `sp`

matrix dimensions are the max value of `ij(:,1)`

and `ij(:,2)`

respectively.

Operations (concatenation, addition, etc,) with sparse matrices are made using the same syntax as for full matrices.

Elementary functions are also available (`abs,maxi,sum,diag,...`

)
for sparse matrices.

Mixed operations (full-sparse) are allowed. Results are full or sparse depending on the operations.

Note : Any operation involving dense matrices of the same size, either as argument (e.g. `sp=sparse(d)`

)
or as result (e.g. `d= sp + 1.`

) is provided for convenience purposes but should of course be avoided.
Furthermore, random access to elements (`sp(r,c)`

), especially for insertions, is not efficient, so
any performance-constrained access should be done in batches with spget for read access
and the three arguments constructor `sp=sparse(ij, v, mn)`

for write access.

### Examples

sp=sparse([1,2;4,5;3,10],[1,2,3]) size(sp) x=rand(2,2);abs(x)-full(abs(sparse(x))) // sparse constructor taking a single dense matrix // removes the zeros. dense=[0., 1., 0., 0., 0., 1., 0., 2., 0., 0. 0., 0., 0., 0., 0. 0., 0., 0., 0., -0.5]; sp=sparse(dense) // complex matrices are also supported sp=sparse(dense*(1+2*%i)) // for boolean matrices, the boolean sparse matrix // only stores true values (and removes false values). dense=[%F, %F, %T, %F, %F %T, %F, %F, %F, %F %F, %F, %F, %F, %F %F, %F, %F, %F, %T]; sp=sparse(dense)

## Comments

Add a comment:Please login to comment this page.