exponenta event banner

диагональ

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

Описание

пример

D = diag(v) возвращает квадратную диагональную матрицу с элементами вектора v на главной диагонали.

пример

D = diag(v,k) размещение элементов вектора v на kВосьмая диагональ. k=0 представляет главную диагональ, k>0 находится над главной диагональю, и k<0 находится ниже основной диагонали.

пример

x = diag(A) возвращает вектор столбца основных диагональных элементов A.

пример

x = diag(A,k) возвращает вектор столбца элементов в kвосьмая диагональ A.

Примеры

свернуть все

Создайте вектор 1 на 5.

v = [2 1 -1 -2 -5];

Использовать diag для создания матрицы с элементами v на главной диагонали.

D = diag(v)
D = 5×5

     2     0     0     0     0
     0     1     0     0     0
     0     0    -1     0     0
     0     0     0    -2     0
     0     0     0     0    -5

Создание матрицы с элементами v на первой супердиагонали (k=1).

D1 = diag(v,1)
D1 = 6×6

     0     2     0     0     0     0
     0     0     1     0     0     0
     0     0     0    -1     0     0
     0     0     0     0    -2     0
     0     0     0     0     0    -5
     0     0     0     0     0     0

Результатом является матрица 6 на 6. При указании вектора длины n в качестве входных данных, diag возвращает квадратную матрицу размера n+abs(k).

Получите элементы на главной диагонали случайной матрицы 6 на 6.

A = randi(10,6)
A = 6×6

     9     3    10     8     7     8
    10     6     5    10     8     1
     2    10     9     7     8     3
    10    10     2     1     4     1
     7     2     5     9     7     1
     1    10    10    10     2     9

x = diag(A)
x = 6×1

     9
     6
     9
     1
     7
     9

Получить элементы на первом поддиагональном (k=-1из A. Результат имеет на один элемент меньше, чем основная диагональ.

x1 = diag(A,-1)
x1 = 5×1

    10
    10
     2
     9
     2

Запрос diag дважды возвращает диагональную матрицу, состоящую из диагональных элементов исходной матрицы.

A1 = diag(diag(A))
A1 = 6×6

     9     0     0     0     0     0
     0     6     0     0     0     0
     0     0     9     0     0     0
     0     0     0     1     0     0
     0     0     0     0     7     0
     0     0     0     0     0     9

Входные аргументы

свернуть все

Диагональные элементы, заданные как вектор. Если v является вектором с N элементы, затем diag(v,k) - квадратная матрица порядка N+abs(k).

diag([]) возвращает пустую матрицу, [].

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Поддержка комплексного номера: Да

Входная матрица. diag возвращает ошибку, если ndims(A) > 2.

diag([]) возвращает пустую матрицу, [].

Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Поддержка комплексного номера: Да

Диагональное число, указанное как целое число. k=0 представляет главную диагональ, k>0 находится над главной диагональю, и k<0 находится ниже основной диагонали.

Для матрицы m-на-n, k находится в диапазоне (m + 1) ≤k≤ (n − 1).

Совет

  • trace матрицы равно sum(diag(A)).

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

..

См. также

| | | | | |

Представлен до R2006a