sparse
Cria uma matriz esparsa, ou converte uma matriz cheia para a forma esparsa.
Categoria: Mathematics > Sparse Matrices
Sintaxe
S = sparse(A)
Converte a matriz cheia A para armazenamento esparso.
S = sparse(m, n)
Cria uma matriz esparsa m-por-n de zeros.
S = sparse(i, j, v)
Cria uma matriz com S(i(k), j(k)) = v(k); posições repetidas são somadas.
S = sparse(i, j, v, m, n)
Igual, com tamanho explícito m-por-n.
S = sparse(i, j, v, m, n, nzmax)
Também reserva espaço para nzmax não nulos.
Descrição
Uma matriz esparsa guarda apenas seus elementos não nulos, o que permite lidar com eficiência com matrizes grandes e quase todas nulas, como malhas de diferenças finitas ou grafos. A exibição lista cada elemento armazenado como (linha,coluna) valor.
A aritmética segue regras simples: esparsa vezes esparsa é esparsa, esparsa mais um escalar não nulo vira cheia, e a maioria das funções elemento a elemento mantém a esparsidade se f(0) = 0. Use full para converter de volta, issparse para testar e find para listar os elementos.
Montar a partir de triplas (i, j, v) é a forma rápida de construir uma matriz. Posições repetidas são somadas, o que é conveniente para montar matrizes de elementos finitos.
Argumentos de entrada
A- Matriz numérica ou lógica.
i, j- Índices de linha e coluna dos elementos, como vetores de inteiros positivos.
v- Valores dos elementos; um escalar é expandido para todas as posições.
m, n- Número de linhas e colunas.
Argumentos de saída
S- Matriz esparsa. Os elementos nulos não aparecem quando ela é exibida.
Exemplo
Triplas, uma soma e uma conversão
S = sparse([1 2 3 3], [1 2 3 3], [4 5 6 1])
full(S)
T = sparse([1 0 2; 0 0 3])
size(sparse(2, 3))
S =
(1,1) 4
(2,2) 5
(3,3) 7
ans = 3×3
4 0 0
0 5 0
0 0 7
T =
(1,1) 1
(1,3) 2
(2,3) 3
ans = 1×2
2 3
Observações
Valores complexos não são preservados: a parte imaginária é descartada ao montar a matriz esparsa. O MatLivre armazena matrizes esparsas de forma densa, então elas não economizam memória, e tamanhos acima de 200 milhões de elementos são rejeitados. Resultados e exibição coincidem com os do MATLAB em tamanhos comuns.