Main Content

diag

Crear una matriz diagonal u obtener elementos diagonales de una matriz

Descripción

ejemplo

D = diag(v) devuelve una matriz diagonal cuadrada con los elementos del vector v en la diagonal principal.

ejemplo

D = diag(v,k) coloca los elementos del vector v en la k-ésima diagonal. k=0 representa la diagonal principal, k>0 está sobre la diagonal principal y k<0 está debajo de la diagonal principal.

ejemplo

x = diag(A) devuelve un vector columna de los elementos de la diagonal principal de A.

ejemplo

x = diag(A,k) devuelve un vector columna de los elementos de la k-ésima diagonal de A.

Ejemplos

contraer todo

Cree un vector de 1 por 5.

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

Utilice diag para crear una matriz con los elementos de v en la diagonal principal.

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

Cree una matriz con los elementos de v en la primera superdiagonal (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

El resultado es una matriz de 6 por 6. Al especificar un vector de longitud n como entrada, diag devuelve una matriz cuadrada del tamaño n+abs(k).

Obtenga los elementos de la diagonal principal de una matriz de 6 por 6 aleatoria.

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

Obtenga los elementos de la primera subdiagonal (k=-1) de A. El resultado tiene un elemento menos que la diagonal principal.

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

    10
    10
     2
     9
     2

Llamar a diag dos veces devuelve una matriz diagonal compuesta por los elementos de diagonal de la matriz original.

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

Argumentos de entrada

contraer todo

Elementos de diagonal, especificados como vector. Si v es un vector con N elementos, diag(v,k) es una matriz cuadrada de orden N+abs(k).

diag([]) devuelve una matriz vacía, [].

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Soporte de números complejos:

Matriz de entrada. diag devuelve un error si ndims(A) > 2.

diag([]) devuelve una matriz vacía, [].

Tipos de datos: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Soporte de números complejos:

Número de diagonal, especificado como entero. k=0 representa la diagonal principal, k>0 está encima de la diagonal principal y k<0 está debajo de la diagonal principal.

En una matriz de m por n, k está en el rango (m+1)k(n1). Por ejemplo, en matrices con n mayor que m, la diagonal principal k=0 consta de los elementos con índices (1,1), (2,2), ..., (m,m). k=1 sobre la diagonal principal consta de los elementos con índices (1,2), (2,3), ..., (m,m+1). k=-1 debajo de la diagonal principal consta de los elementos con índices (2,1), (3,2), ..., (m,m-1).

Diagonal numbers k=0, k>0, and k<0

Sugerencias

  • trace de una matriz es igual a sum(diag(A)).

Capacidades ampliadas

Historial de versiones

Introducido antes de R2006a

Consulte también

| | | | | |