| Mathematics | ![]() |
スパース行列の可視化
MATLABは、スパース行列に関する情報を量的にも、グラフィカルにも表示する関数をいくつか用意しています。
非ゼロ要素に関する情報
スパース行列の非ゼロ要素に関する高水準の情報を得る関数がいくつか用意されています。
nnz は、スパース行列の中の非ゼロ要素の数を表します。nonzeros は、スパース行列の非ゼロ要素すべてを含む列ベクトルです。nzmaxは、スパース行列の非ゼロ要素に対して割り当てられたストレージ総容量を表します。これらのいくつかを試すため、Harwell-Boeingで記述されているものの一つであるスパース行列west0479をロードします。
load west0479 whos Name Size Bytes Class west0479 479x479 24576 sparse array
この行列は、8ステージの化学蒸留過程をモデル化したものです。
nnz(west0479)
ans =
1887
format short e
west0479
west0479 =
(25,1) 1.0000e+00
(31,1) -3.7648e-02
(87,1) -3.4424e-01
(26,2) 1.0000e+00
(31,2) -2.4523e-02
(88,2) -3.7371e-01
(27,3) 1.0000e+00
(31,3) -3.6613e-02
(89,3) -8.3694e-01
(28,4) 1.3000e+02
.
.
.
ans =
1.0000e+00
-3.7648e-02
-3.4424e-01
1.0000e+00
-2.4523e-02
-3.7371e-01
1.0000e+00
-3.6613e-02
-8.3694e-01
1.3000e+02
.
.
.
最初、nnzはデフォルトにより、nzmaxと同じ値であることに注意してください。これは、非ゼロ要素の数が、非ゼロに対して割り当てられるストレージの位置の数と同じだからです。しかし、その後ある配列要素をゼロにしてもMATLABはメモリを開放しません。いくつかの行列要素の値をゼロにすると、nnzの値が変化しますが、nzmaxの値は変化しません。
必要なら行列にいくつかの非ゼロ要素を加えることができます。しかし、nzmaxのオリジナルな値によって制約を受けるものではありません。
| MATLABの外部からスパース行列を読み込む | スパース行列のグラフィカルな表示 | ![]() |