spfun - Apply function to nonzero sparse matrix elements

Syntax

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 nonzero elements of S. fun is a function handle. See Function Handles in the MATLAB Programming documentation for more information.

Parametrizing Functions in the MATLAB Mathematics documentation, explains how to provide additional parameters to the function fun, if necessary.

Remarks

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

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

See Also

function_handle (@)

  


 © 1984-2008- The MathWorks, Inc.    -   Site Help   -   Patents   -   Trademarks   -   Privacy Policy   -   Preventing Piracy   -   RSS