diag

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

Описание

пример

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

пример

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

пример

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

пример

x = diag(A,k) возвращает вектор-столбец с элементами на k1-я диагональ 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