Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function
sparse
疎行列を定義
呼び出し手順
sp = sparse(X) sp = sparse(ij, v) sp = sparse(ij, v, mn)
引数
- X
実数または複素数の通常の(または疎)行列
- ij
2列の整数行列 (非ゼロエントリのインデックス)
- v
ベクトル
- mn
2つのエントリ(行の次元, 列の次元c)を有する整数ベクトル
- sp
疎行列
説明
sparse
は疎行列を作成するために使用されます.
ゼロでないエントリのみが保存されます.
sp = sparse(X)
は,
0要素を除外することにより,通常の行列を疎行列に変換します.
(X
が既に疎行列の場合,
sp
はX
となります).
sp=sparse(ij,v [,mn])
は,
sp(ij(k,1),ij(k,2))=v(k)
となる
mn(1)
行mn(2)
列の疎行列
を作成します.
ij
および v
は列の次元が
同じである必要があります.
オプションのmn
パラメータが指定されない場合,
行列sp
の次元は,それぞれ
ij(:,1)
および ij(:,2)
の
最大値となります.
疎行列に関する操作(結合,加算,等,)は通常の行列と同じ構文により 行ないます.
基本的な関数(abs,maxi,sum,diag,...
)は疎行列でも
利用可能です.
(通常の行列と疎行列の)混用も可能です. 結果は処理に応じて通常または疎行列となります.
注意 :
同じ大きさの通常の行列を含む任意の演算は,
引数(例: sp=sparse(d)
),
または,結果(例 d= sp + 1.
) のどちら
についても利便性のために提供されていますが,当然避けるべきです.
更に,要素(sp(r,c)
)へのランダムアクセス,
特に挿入,は効率的ではありません.
このため,性能面の制約があるアクセスでは,
読込みアクセスはspget,
書込みアクセスはsp=sparse(ij, v, mn)
による
バッチ処理により行う必要があります.
例
sp = sparse([1,2;4,5;3,10],[1,2,3]) size(sp) x = rand(2,2); abs(x) - full(abs(sparse(x))) // sparse constructor taking a single dense matrix // removes the zeros. dense = [0., 1., 0., 0., 0., 1., 0., 2., 0., 0. 0., 0., 0., 0., 0. 0., 0., 0., 0., -0.5]; sp = sparse(dense) // complex matrices are also supported sp = sparse(dense*(1+2*%i)) // for boolean matrices, the boolean sparse matrix // only stores true values (and removes false values). dense = [%F, %F, %T, %F, %F %T, %F, %F, %F, %F %F, %F, %F, %F, %F %F, %F, %F, %F, %T]; sp=sparse(dense)
参照
Report an issue | ||
<< sp2adj | Sparse Matrix Conversion | spcompack >> |