Применить функцию к ненулевым разреженным матрицам
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)
имеет 1
s где S
имеет 0
с.
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
.