ドキュメンテーション

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

isdiag

行列が対角かどうかを判別

構文

  • tf = isdiag(A)

説明

tf = isdiag(A) は、A対角行列の場合は論理値 1 (true) を返し、その他の場合は論理値 0 (false) を返します。

すべて折りたたむ

4 行 4 列の単位行列を作成します。

I = eye(4)
I =

     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

対角行列であるかどうかテストします。

isdiag(I)
ans =

     1

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

主対角と最初の対角に非ゼロ要素をもつ行列を作成します。

A = 3*eye(4) + diag([2 2 2],1)
A =

     3     2     0     0
     0     3     2     0
     0     0     3     2
     0     0     0     3

対角行列であるかどうかテストします。

isdiag(A)
ans =

     0

主対角の上側に非ゼロ要素があるので、この行列は対角ではありません。

A の主対角要素から、新たに行列 B を作成します。

B = diag(diag(A));

B が対角行列であるかどうかテストします。

isdiag(B)
ans =

     1

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

入力引数

すべて折りたたむ

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

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

詳細

すべて折りたたむ

対角行列

主対角の上側と下側の要素がすべてゼロである行列は、対角です。また、主対角上の任意の数の要素も、ゼロである可能性があります。

たとえば、4 行 4 列の単位行列

I4=(1000010000100001)

は対角行列です。対角行列は通常正方行列ですが、必ずしもそうであるとは限りません。

ヒント

  • 関数 diag を使用して、isdiag が論理値 1 (true) を返す対角行列を作成します。

  • 関数 isdiagistriuistril は関数 isbanded の特殊形です。この関数の上方と下方のバンド幅を適切に定義して、同じテストをすべて実行することができます。たとえば、isdiag(A) == isbanded(A,0,0) のようになります。

R2014a で導入

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