diag

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

Описание

пример

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

пример

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

пример

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

пример

x = diag(A,k) возвращает вектор-столбец элементов на kдиагональ th 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-by-n матрица, k находится в области значений (m+1)k(n1).

Советы

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

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

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

| | | | | |

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