varargin variável do número de argumentos de saída em uma lista de argumentos de entrada

## Descrição

Uma função cujo último argumento de entrada é `varargin` pode ser chamada com mais argumentos de entrada que os indicados pela lista de argumentos de entrada. Os argumentos de chamada passados da palavra-chave `varargin` em diante podem ser recuperados em uma lista chamada `varargin`.

Suponha que a palavra-chave `varargin` é o n-ésimo argumento da lista de argumentos de entrada formal, então, se a função é chamada com `n-1` argumentos de entrada, a lista `varargin` não é definida. Se a função for chamada com `n-1` argumentos, então `varargin` é uma lista vazia

`function y= ex(varargin)` pode ser chamada com qualquer número de argumentos de entrada. Dentro da função `ex` argumentos de entrada podem ser recuperados em `varargin(i)`, `i=1:length(varargin)`

Se não for o último argumento de entrada da função, `varargin` é um argumento de entrada normal, sem nenhum significado especial.

O número de argumentos de entrada real é dado por `argn(2)`.

## Observações

Sintaxe de argumento nomeada, como `foo(...,key=value)`, é incompatível com o uso de `varargin`. A razão é que os nomes (i.e. keys) associados aos valores value não são armazenados na lista `varargin`. Considere por exemplo:

    function foo(varargin)
        disp([varargin(1),varargin(2)])
    endfunction

    --> foo(a=1, b=2)
     1.    2.
    --> foo(b=1, a=2)
     1.    2.

O resultado é o mesmo, mas os argumentos foram invertidos.

## Exemplos

    function exampl(a,varargin)
        [lhs,rhs]=argn(0)
        if rhs>=1 then
            disp(varargin)
        end
    endfunction

    exampl(1)
    exampl()
    exampl(1,2,3)
    l=list('a',%s,%t);
    exampl(1,l(2:3))

## Ver Também

- varargout
- argn
- function
- list