Применить функцию к ненулевым разреженным матрицам
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 имеет 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.