2011-01-23 14 views
1

どのようにスパース行列を表示できますか?私を助けたいと思った人は、リンクされたリストを使用しています。スパース行列

SpMatrix 
{ 
    int non_zero_value; 
    int i,j; 
} 

まさにスパース行列です、私が読んだwekipediaや他のサイトを:
はまた、私はいくつかは、我々はこのようなクラスを作成する必要があることをどこで読んだことがあります。問題はまだ解決されていません。

ありがとうございます。

+1

あなたの質問には「どのように疎なマトリックスを表示することができますか?実際には私はここにいるのですが、それは何ですか?私は自分の問題を解決する必要があります。です。 –

+1

あなたは明らかにスパース行列について学びたいと思っています。この努力について真剣なら、私はティム・デイビスの本を購入することをお勧めします:http://www.cise.ufl.edu/research/sparse/CSparse/ –

答えて

4

疎だけ対角線上に非ゼロ要素を有する行列が明らかに疎な行列である。例えば0に等しい最も要素を有する行列である:

1 0 0 0 
0 2 0 0 
0 0 3 0 
0 0 0 4 

明らかにそれはにスペースの無駄ですほとんどがゼロであるため、行列のすべての要素を格納します。そのような行列を格納するための数多くのテクニックがあります。そして、それは実際にどのように一般的になりたいのか、そして特定の問題に本当に依存しています。

ほとんどの場合、サポートするスパース行列の種類ごとに特定のクラスを持つことになります。対角線、三角形、バンドの対角線などがあります。通常、これは汎用ソリューションよりも効率的なコードを提供します。

これは、レシピが作成されていないという複雑な問題です。リンクされたリストや他の何かを実際に使用することができます。

+0

まあ、一般的なアプローチもあります。例えば、圧縮された行ストレージ。 – sellibitze

+0

もちろん、座標値を持つこともできます。 –

+0

リンクされたリストが適切な選択肢になるユースケースは見当たりません –

関連する問題