diag inclusão ou extração diagonal

## Seqüência de Chamamento

               y = diag(vm)
               y = diag(vm, k)

## Parâmetros

vm

  vetor ou matriz (armazenamento cheio ou esparso)

k

  inteiro (o valor padrão é 0)

y

  vetor ou matriz

## Descrição

Para um n-vetor (linha ou coluna) `vm` , `diag(vm)` retorna uma matriz diagonal com entradas de `vm` ao longo da diagonal principal.

`diag(vm,k)` é uma matriz `(n+abs(k))x(n+abs(k))` com entradas de `vm` ao longo da k-ésima diagonal. `k=0` é a diagonal principal, `k>0` são as diagonais superiores e `k<0` são as diagonais inferiores.

Para uma matriz `vm`, `diag(vm,k)` é o vetor coluna feito das entradas da k-ésima diagonal de `vm`. `diag(vm)` é a diagonal principal de `vm`. `diag(diag(x))` é a matriz diagonal.

Se `vm` é uma matriz esparsa, `diag(vm,k)` retorna uma matriz esparsa.

Para construir um sistema linear diagonal, use `blockdiag`.

Perceba que `eye(A).*A` retorna uma matriz diagonal feita das entradas diagonais de `A`. Isto é válido para qualquer matriz (constante, de polinômios, de razões de polinômios, sistema linear em espaço de estados,...).

## Exemplos

    diag([1,2])

    A=[1,2;3,4];
    diag(A)  // diagonal principal
    diag(A,1)

    diag(sparse(1:10))  // matriz diagonal esparsa

    // forma de uma matriz triadiagonal de tamanho 2*m+1
    m=5;diag(-m:m) +  diag(ones(2*m,1),1) +diag(ones(2*m,1),-1)

## Ver Também

- toeplitz
- eye
- blockdiag
- spec
- bdiag