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