Accelerating the pace of engineering and science

# Documentation Center

• Trial Software
• Product Updates

# spfun

Apply function to nonzero sparse matrix elements

f = spfun(fun,S)

## Description

The spfun function selectively applies a function to only the nonzero elements of a sparse matrix S, preserving the sparsity pattern of the original matrix (except for underflow or if fun returns zero for some nonzero elements of S).

f = spfun(fun,S) evaluates fun(S) on the elements of S that are nonzero. fun is a function handle.

Parameterizing Functions explains how to provide additional parameters to the function fun, if necessary.

## Examples

Given the 4-by-4 sparse diagonal matrix

```S = spdiags([1:4]',0,4,4)

S =
(1,1)        1
(2,2)        2
(3,3)        3
(4,4)        4```

Because fun returns nonzero values for all nonzero element of S, f = spfun(@exp,S) has the same sparsity pattern as S.

```f =
(1,1)       2.7183
(2,2)       7.3891
(3,3)      20.0855
(4,4)      54.5982```

whereas exp(S) has 1s where S has 0s.

```full(exp(S))

ans =
2.7183    1.0000    1.0000    1.0000
1.0000    7.3891    1.0000    1.0000
1.0000    1.0000   20.0855    1.0000
1.0000    1.0000    1.0000   54.5982```

## More About

expand all

### Tips

Functions that operate element-by-element, like those in the elfun directory, are the most appropriate functions to use with spfun.

## See Also

Was this topic helpful?