Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Português - 日本語

Please note that the recommended version of Scilab is 6.0.0. This page might be outdated.
See the recommended documentation of this function

Aide Scilab >> Matrices creuses > sparse


sparse matrix definition

Calling Sequence

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



real or complex or boolean full (or sparse) matrix


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




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


sparse matrix


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 involing 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.


// 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];
// complex matrices are also supported
// 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];

See Also

  • full — sparse to full matrix conversion
  • spget — retrieves entries of sparse matrix
  • sprand — matrice creuse aléatoire
  • speye — matrice identité creuse
  • lufact — factorisation LU d'une matrice creuse
Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Wed Oct 05 12:10:58 CEST 2011