Применить функцию к ненулевым элементам разреженной матрицы
f = spfun(fun,S)
spfun функция избирательно применяет функцию только к ненулевым элементам разреженной матрицы S, сохраняя узор разреженности исходной матрицы (за исключением неполного потока или если fun возвращает ноль для некоторых ненулевых элементов S).
f = spfun(fun,S) оценивает fun(S) по элементам S ненулевые. fun является дескриптором функции.
Параметризация функций объясняет, как предоставить дополнительные параметры функции fun, при необходимости.
Учитывая разреженную диагональную матрицу 4 на 4
S = spdiags([1:4]',0,4,4) S = (1,1) 1 (2,2) 2 (3,3) 3 (4,4) 4
Поскольку fun возвращает ненулевые значения для всех ненулевых элементов S, f = spfun(@exp,S) имеет тот же шаблон разреженности, что и S.
f = (1,1) 2.7183 (2,2) 7.3891 (3,3) 20.0855 (4,4) 54.5982
тогда как exp(S) имеет 1s где S имеет 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Функции, которые работают поэлементно, как в elfun каталог, являются наиболее подходящими функциями для использования с spfun.