isdiag

Определите, является ли матрица диагональной

Синтаксис

Описание

пример

tf = isdiag(A) возвращает логический 1 TRUE) если A диагональная матрица; в противном случае это возвращает логический 0 ложь).

Примеры

свернуть все

Создайте единичную матрицу 4 на 4.

I = eye(4)
I = 4×4

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

Протестируйте, чтобы видеть, является ли матрица диагональной.

isdiag(I)
ans = logical
   1

Результатом является логический 1 TRUE) потому что все ненулевые элементы в I находятся на основной диагонали.

Создайте матрицу с ненулевыми элементами на основных и первых диагоналях.

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

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

Протестируйте, чтобы видеть, является ли матрица диагональной.

isdiag(A)
ans = logical
   0

Матрица не является диагональной, поскольку существуют ненулевые элементы выше основной диагонали.

Создайте новую матрицу, B, от основных диагональных элементов A.

B = diag(diag(A));

Протестируйте, чтобы видеть если B диагональная матрица.

isdiag(B)
ans = logical
   1

Результатом является логический 1 TRUE) потому что нет никаких ненулевых элементов выше или ниже основной диагонали B.

Входные параметры

свернуть все

Входной массив в виде числового массива. isdiag возвращает логический 0 ложь) если A имеет больше чем две размерности.

Типы данных: single | double
Поддержка комплексного числа: Да

Больше о

свернуть все

Диагональная матрица

Матрица A является диагональной, если всеми элементами выше и ниже основной диагонали является нуль. Любое количество элементов на основной диагонали может также быть нулем.

Например, единичная матрица 4 на 4,

I4=(1000010000100001)

диагональная матрица. Диагональные матрицы обычно, но не всегда, квадрат.

Советы

  • Используйте diag функционируйте, чтобы произвести диагональные матрицы для который isdiag возвращает логический 1 TRUE).

  • Функции isdiagistriu, и istril особые случаи функции isbanded, который может выполнить все те же тесты с соответственно заданными верхними и более низкими полосами пропускания. Например, isdiag(A) == isbanded(A,0,0).

Расширенные возможности

Смотрите также

| | | | | |

Введенный в R2014a