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