MATLAB ヘルプ センター
スパース行列の非ゼロ要素に関数を適用
F = spfun(func,S)
F = spfun(func,S) は、関数 func をスパース行列 S の非ゼロ要素に適用します。入力引数 func は関数ハンドルであり、この関数は 1 つの入力引数を取ります。
F
func
S
この操作は、関数 func が S の非ゼロ要素にゼロを返す場合を除き、元の行列 S のスパース性を保持します。
例
すべて折りたたむ
4 行 4 列のスパース対角行列を作成します。
S = diag(sparse(1:4))
S = 4×4 sparse double matrix (4 nonzeros) (1,1) 1 (2,2) 2 (3,3) 3 (4,4) 4
指数関数を S の非ゼロ要素に適用します。結果の行列は、S と同じスパース パターンをもちます。
F = spfun(@exp,S)
F = 4×4 sparse double matrix (4 nonzeros) (1,1) 2.7183 (2,2) 7.3891 (3,3) 20.0855 (4,4) 54.5982
spfun は S の非ゼロ要素だけに適用されるため、S(i) がゼロの場合は F(i) の値がゼロになります。これは関数を S のすべての要素に適用することとは異なります。たとえば、指数関数を S のすべての要素に適用することと、この結果を比較します。関数 exp(S) は、S の 0 である要素に対して 1 を返します。
spfun
S(i)
F(i)
exp(S)
0
1
full(exp(S))
ans = 4×4 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
密度が 0.02 のランダムな 50 行 50 列のスパース行列を作成します。この行列は 50 個の非ゼロ要素をもちます。行列 S のスパース パターンをプロットします。
0.02
50
rng default; S = sprand(50,50,0.02); spy(S)
二次関数 x2+x+1 を S の非ゼロ要素で評価します。spfun を使用して評価した関数は、行列 S と同じスパース パターンをもちます。
fun = @(x) x.^2 + x + 1; F = spfun(fun,S); spy(F)
入力行列。この行列は通常スパースですが、必ずしもスパースに限りません。
S が完全な行列の場合、F = spfun(func,S) は関数 func を S の非ゼロ要素に適用して、F をスパース行列として返します。
データ型: single | double | logical 複素数のサポート: あり
single
double
logical
入力配列の要素に適用する関数。関数ハンドルとして指定します。関数は S を要素単位で処理しなければなりません。関数ハンドルの詳細については、関数ハンドルの作成を参照してください。
例: @(n) n+1
@(n) n+1
func がゼロである入力に対してゼロを返す場合、func(S) を使用して、スパース行列 S での spfun の呼び出しと同じ結果を返すことができます。
func(S)
すべて展開する
backgroundPool
ThreadPool
この関数はスレッドベースの環境を完全にサポートしています。詳細については、スレッドベースの環境での MATLAB 関数の実行を参照してください。
spfun 関数は、GPU 配列を完全にサポートします。GPU 上で関数を実行するには、入力データを gpuArray (Parallel Computing Toolbox) として指定します。詳細については、GPU での MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
gpuArray
使用上の注意および制限:
各ワーカーで、fun はワーカーにとってローカルである S の非ゼロ要素のみを入力として受け取ります。したがって、要素単位で動作する関数は spfun での使用に最も適しています。
fun
詳細については、分散配列を使用した MATLAB 関数の実行 (Parallel Computing Toolbox)を参照してください。
入力行列 S は単精度として指定できます。S が single の場合、出力引数も single になります。
sparse | spones
sparse
spones
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
ヨーロッパ
アジア太平洋地域
最寄りの営業オフィスへのお問い合わせ