gf_spmat

概要

SM = gf_spmat('empty', int m [, int n])
SM = gf_spmat('copy', mat K [,  I [,  J=I]])
SM = gf_spmat('identity', int n)
SM = gf_spmat('mult', spmat A, spmat B)
SM = gf_spmat('add', spmat A, spmat B)
SM = gf_spmat('diag', mat D [, ivec E [, int n [,int m]]])
SM = gf_spmat('load','hb'|'harwell-boeing'|'mm'|'matrix-market', string filename)

説明 :

spmat オブジェクトの汎用的なコンストラクタ

GetFEM形式で新しい疎行列を作成します(つまり,matlab疎行列ではなく,getfemワークスペースに保存される疎行列).これらの疎行列は,Matlabで使用される形式であるCSC(圧縮された疎の列)として保存することも,WSC(getfemの内部形式)として保存することもできます.CSC行列は書き込み可能ではありませんが(これは非常に非効率的です),ベクトルとの乗算とメモリ使用量のために最適化されています.WSCは書き込み可能であり,ランダムな読み取り/書き込み操作に関して非常に高速です.しかし,メモリオーバヘッドはCSC行列よりも高く,行列ベクトル乗算では若干遅いです.

デフォルトでは,新しく作成されたマトリックスはすべてWSCマトリックスとして構築されます.これは後で gf_spmat_set(spmat S, 'to_csc',...)``か,あるいはgetfem(例えば ``gf_linsolve() は行列をCSCに変換します)によって自動的に変更できます.

マトリックスには実数値または複素数値を格納できます.

コマンドリスト

SM = gf_spmat('empty', int m [, int n])

新しい空の(すなわち,ゼロで満たされた)次元 m x n 疎行列を作成します. n を省略すると,行列の次元は m x m になります.

SM = gf_spmat('copy', mat K [,  I [,  J=I]])

(SpMatかmatlabネイティブの疎行列かもしれない)行列Kを複製します.インデックス I 及び/又は J が与えられる場合,行列は K の部分行列となります.例えば

m = gf_spmat('copy', sprand(50,50,.1), 1:40, [6 7 8 3 10])

は 40x5 の行列を返します.

SM = gf_spmat('identity', int n)

n x n 次の単位行列を作成します.

SM = gf_spmat('mult', spmat A, spmat B)

疎行列AとBの積の疎行列を作成します. AB が両方とも実数であるか,両方とも複素数である必要があります. gf_spmat_set(spmat S, 'to_complex') を使う必要があるかもしれません.

SM = gf_spmat('add', spmat A, spmat B)

疎行列AとBの和の疎行列を作成します.複素数行列を持つ実数行列の追加が可能です.

SM = gf_spmat('diag', mat D [, ivec E [, int n [,int m]]])

対角行列を作成します. E が与えられる場合, D は行列であり, E の各列は D の対応する列の部分対角番号を含みます.

SM = gf_spmat('load','hb'|'harwell-boeing'|'mm'|'matrix-market', string filename)

Harwell-BoeingやMatrix-Marketのファイルから疎行列を読みます. gf_util('load matrix') も参照してください.