ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

isbanded

行列が特定のバンド幅内かどうかを判別

構文

  • tf = isbanded(A,lower,upper)

説明

tf = isbanded(A,lower,upper) は、指定された下方のバンド幅 lower と上方のバンド幅 upper の間に行列 A がある場合、論理値 1 (true) を返します。それ以外の場合には論理値 0 (false) を返します。

すべて折りたたむ

主対角の上下に非ゼロの対角をもつ 5 行 5 列の正方行列を作成します。

A = [2 3 0 0 0 ; 1 -2 -3 0 0; 0 -1 2 3 0 ; 0 0 1 -2 -3; 0 0 0 -1 2]
A =

     2     3     0     0     0
     1    -2    -3     0     0
     0    -1     2     3     0
     0     0     1    -2    -3
     0     0     0    -1     2

lowerupper の 2 つのバンド幅を 1 と指定し、A が三重対角であるかテストします。

isbanded(A,1,1)
ans =

     1

結果は論理値 1 (true) です。

lower0 と指定し、A が主対角の下側に非ゼロ要素をもつかどうかテストします。

isbanded(A,0,1)
ans =

     0

A が主対角の下側に非ゼロ要素をもつので、結果は論理値 0 (false) になります。

3 行 5 列の行列を作成します。

A = [1 0 0 0 0; 2 1 0 0 0; 3 2 1 0 0]
A =

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

A が主対角の上側に非ゼロ要素をもつかどうかテストします。

isbanded(A,2,0)
ans =

     1

主対角の上側の要素がすべてゼロなので、結果は論理値 1 (true) になります。

100 行 100 列のスパース ブロック行列を作成します。

B = kron(speye(25),ones(4));

B の下方と上方のバンド幅が 1 であるかどうかテストします。

isbanded(B,1,1)
ans =

     0

主対角の中心にある非ゼロ ブロックが 2 行 2 列よりも大きいので、結果は論理値 0 (false) です。

B の下方と上方のバンド幅が 3 であるかどうかテストします。

isbanded(B,3,3)
ans =

     1

結果は論理値 1 (true) です。非ゼロ対角ブロックが 4 行 4 列なので、行列 B の上方と下方のバンド幅は 3 です。

入力引数

すべて折りたたむ

入力配列。数値配列として指定します。A が 3 つ以上の次元をもつ場合、isbanded は論理値 0 (false) を返します。

データ型: single | double
複素数のサポート: はい

非負の整数スカラーとして指定される下方のバンド幅。下方のバンド幅は、主対角の下側にある非ゼロの対角の数です。境界対角 diag(A,-lower) の下側に非ゼロの要素がある場合、isbanded は論理値 0 (false) を返します。

非負の整数スカラーとして指定された上方のバンド幅。上方のバンド幅は、主対角の上側にある非ゼロの対角の数です。境界対角 diag(A,upper) の上側に非ゼロの要素がある場合、isbanded は論理値 0 (false) を返します。

詳細

すべて折りたたむ

ヒント

  • 関数 bandwidth を使用して、指定した行列の上方と下方のバンド幅を求めます。

  • isbanded を使用して、適切な上方と下方のバンド幅を指定し、いくつかの異なる行列構造をテストします。下の表に、一般的に使用されるテストを示します。

    下方のバンド幅

    上方のバンド幅

    関数呼び出し

    テスト対象

    00isbanded(A,0,0)

    対角行列

    11isbanded(A,1,1)

    三重対角行列

    0size(A,2)isbanded(A,0,size(A,2))

    上三角行列

    size(A,1)0isbanded(A,size(A,1),0)

    下三角行列

    1size(A,2)isbanded(A,1,size(A,2))

    上ヘッセンベルグ行列

    size(A,1)1isbanded(A,size(A,1),1)

    下ヘッセンベルグ行列

R2014a で導入

この情報は役に立ちましたか?