isdiag

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

Синтаксис

Описание

пример

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

Примеры

свернуть все

Создайте матрицу тождеств 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 (false), если A имеет более двух размерности.

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

Подробнее о

свернуть все

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

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

Для примера, матрица тождеств 4 на 4,

I4=(1000010000100001)

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

Совет

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

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

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

.

См. также

| | | | | |

Введенный в R2014a