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の積の疎行列を作成します. A と B が両方とも実数であるか,両方とも複素数である必要があります.
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')
も参照してください.