Contenuto principale

diag

Creare una matrice diagonale o ottenere gli elementi diagonali di una matrice

Descrizione

D = diag(v) restituisce una matrice diagonale quadrata con gli elementi del vettore v sulla diagonale principale.

esempio

D = diag(v,k) pone gli elementi del vettore v sulla k-esima diagonale. k=0 rappresenta la diagonale principale, k>0 è sopra la diagonale principale e k<0 è sotto la diagonale principale.

esempio

x = diag(A) restituisce un vettore colonna degli elementi della diagonale principale di A.

esempio

x = diag(A,k) restituisce un vettore colonna degli elementi sulla k-esima diagonale di A.

esempio

Esempi

comprimi tutto

Creare un vettore 1x5.

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

Utilizzare diag per creare una matrice con gli elementi di v sulla diagonale principale.

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

Creare una matrice con gli elementi di v sulla prima diagonale superiore (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

Il risultato è una matrice 6x6. Quando si specifica un vettore di lunghezza n come input, diag restituisce una matrice quadrata di grandezza n+abs(k).

Acquisire gli elementi della diagonale principale di una matrice casuale 6x6.

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

Acquisire gli elementi della prima sottodiagonale (k=-1) di A. Il risultato presenta un elemento in meno rispetto alla diagonale principale.

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

    10
    10
     2
     9
     2

Chiamando diag due volte restituisce una matrice diagonale composta dagli elementi della diagonale della matrice originale.

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

Argomenti di input

comprimi tutto

Elementi della diagonale, specificati come vettore. Se v è un vettore con N elementi, diag(v,k) è una matrice quadrata di ordine N+abs(k).

diag([]) restituisce una matrice vuota [].

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Supporto numeri complessi:

Matrice di input. diag restituisce un errore se ndims(A) > 2.

diag([]) restituisce una matrice vuota [].

Tipi di dati: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char
Supporto numeri complessi:

Numero della diagonale, specificato come numero intero. k=0 rappresenta la diagonale principale, k>0 è sopra la diagonale principale e k<0 è sotto la diagonale principale.

Per una matrice m x n, k è nell'intervallo (m+1)k(n1). Ad esempio, per le matrici con n maggiore di m, la diagonale principale k=0 è costituita dagli elementi con indici (1,1), (2,2), ..., (m,m). La k=1 sopra la diagonale principale è costituita dagli elementi con indici (1,2), (2,3), ..., (m,m+1). La k=-1 sotta la diagonale principale è costituita dagli elementi con indici (2,1), (3,2), ..., (m,m-1).

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

Suggerimenti

  • La trace di una matrice è uguale a sum(diag(A)).

Funzionalità estese

espandi tutto

Cronologia versioni

Introduzione prima di R2006a

Vedi anche

| | | | | |