exponenta event banner

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