Dane wejściowe będą podstawione do kolejnych komórek: varargin{l}, varargin{2), i t.d.
Podobnie, jeżeli funkcja może zwracać zmienną ilość danych opcjonalnych, to jako argumentu wyjściowego można użyć tablicy komórek varargout używając jednego z przykładowych wierszy definicji:
function varargout = mfun(xl, x2,...)
% lub gdy yl i y2 są obligatoryjne, reszta - opcjonalnie: function [yl y2 varargout] = mfun(xl, x2, )
Dane wyjściowe należy wówczas przekazywać za pomocą varargout{ 1}, varargout{2}, i t.d. Nazwy varargin i varargout są słowami kluczowymi i muszą być pisane małymi literami.
Począwszy od wersji 7.0 MATLAB-a istnieje możliwość wykorzystania klasy inputParser i jej metod, do przetwarzania danych wejściowych funkcji. Instancja klasy inputParser, posiada następujące pola:
CaseSensitive atrybut określający, czy w nazwach parametrów mająbyć rozróżniane wielkie i małe litery, domyślnie false.
FunctionName nazwa identyfikująca funkcję, wykorzystywana np. w przypadku obsługi błędów.
StructExpand atrybut określający, czy można wprowadzić argumenty wejściowe w postaci struktury zamiast w postaci listy, domyślnie true.
KeepUnmatched atrybut określający, czy przechowywać wartości parametrów niezgodnych ze specyfikacją funkcji, wartość domyślna false.
Results struktura przechowująca wartości uzyskane w wyniku ostatniego działania
metody parse na danych wejściowych. Struktura ta posiada pola o nazwach zgodnych z zadeklarowanymi w metodach addRequired, addOptional oraz addParamValue,
UsingDefaults tablica komórek, zawierająca nazwy parametrów, które nie wystąpiły w wywołaniu funkcji, w związku z czym otrzymały wartości domyślne,
Unmatched struktura przechowująca wartości dla parametrów przesłanych w wywołaniu
funkcji w postaci par nazwa-wartość, których nazwy nie występująwjej specyfikacji, jeśli atrybut KeepUnmatched ma wartość true. Nazwy pól struktury zgodne są z nazwami przekazanych a niewykorzystanych parametrów.
Parameters tablica komórek zawierająca nazwy wszystkich parametrów umieszczonych w specyfikacji funkcji przez metody addRequired. addOptional oraz addParamValue.
Klasa inputParser posiada następujące metody:
inputParser
addRequired
konstruktor klasy.
dodanie wymaganego argumentu wejściowego do specyfikacji funkcji. Te argumenty mogą być przy wywołaniu przekazywane albo jako wartości (w kolejności wprowadzania do specyfikacji) albo jako pary nazwa -wartość (wówczas kolejność wprowadzania jest dowolna). Argumentami metody są: nazwa argumentu i funkcja sprawdzania poprawności wartości wejściowej.
dodanie parametru opcjonalnego wraz z wartością domyślną do specyfikacji funkcji. Te argumenty mogą być przekazywane jako wartości albo jako pary nazwa - wartość. Argumentami metody są: nazwa argumentu i funkcja sprawdzania poprawności wartości wejściowej. addParamValue dodanie opcjonalnego parametru wejściowego do specyfikacji funkcji. Te parametry muszą być wprowadzane w wierszu wywołania funkcji wyłącznie jako pary nazwa - wartość. Argumentami metody są: nazwa argumentu, wartość domyślna i funkcja sprawdzania poprawności wartości wejściowej.
addOptional
19