Main Content

sprank

説明

r = sprank(A) は、スパース行列 A構造化ランクを計算します。

すべて折りたたむ

2 行 4 列の行列の構造化ランクを計算します。

A = [1 0 2 0
     2 0 4 0];
A = sparse(A);
rs = sprank(A)
rs = 2

構造化ランクを通常のランクの計算と比較します。

rf = rank(full(A))
rf = 1

この行列の場合、2 列が非ゼロのため、構造化ランクは 2 です。しかし、それらの列は互いの倍数であるため、行列の実際のランクは 1 です。

入力引数

すべて折りたたむ

入力行列。スパース行列として指定します。

データ型: double
複素数のサポート: あり

詳細

すべて折りたたむ

構造化ランク

行列の構造化ランクは、同じ非ゼロ パターンをもつすべての行列の最大ランクです。対角にゼロ要素がないように並べ替えることができる場合、行列は非スパースの構造化ランクをもちます。

構造化ランクは行列のランクの上限であるため、sprank(A) >= rank(full(A)) を満たします。

以下は、他の関数での構造化ランクの定義の一部です。

  • 構造化ランクは "最大一致" であり、sprank(A) = sum(dmperm(A)>0) による Dulmage-Mendelsohn 分解に関連しています。

  • dmperm と異なり、関数 matchpairs は、一致を計算するときに重みも考慮します。行列を 1 と 0 に変換し、matchpairs(double(A~=0),0,'max') を使用して一致の重みを最大にすることにより、最大一致を計算できます。これにより、構造化ランクが一致の数と等しくなります。

拡張機能

バージョン履歴

R2006a より前に導入