ドキュメンテーション センター

  • 評価版
  • 製品アップデート

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

spfun

スパース行列の非ゼロ要素に関数を適用

構文

f = spfun(fun,S)

説明

関数 spfun は、スパース行列 S"非ゼロ" 要素のみに関数を適用し、元の行列のスパース パターンは変更しません (アンダーフローまたは funS の非ゼロ要素にゼロを返す場合を除きます)。

f = spfun(fun,S) は、S の非ゼロの要素の fun(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

funS のすべての非ゼロ要素に対して非ゼロの値を返すため、f = spfun(@exp,S) は、S と同じスパース パターンをもちます。

f =
   (1,1)       2.7183
   (2,2)       7.3891
   (3,3)      20.0855
   (4,4)      54.5982

exp(S) は、S0 の場合 1 になります。

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

詳細

すべて展開する

ヒント

spfun で使用する関数には、elfun ディレクトリ内の関数のように、要素単位で実行する関数が適しています。

参考

この情報は役に立ちましたか?