| MATLAB® | ![]() |
f = spfun(fun,S)
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.
Functions that operate element-by-element, like those in the elfun directory, are the most appropriate functions to use with spfun.
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.5982function_handle (@)
![]() | speye | sph2cart | ![]() |
| © 1984-2008- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |