function x = plotFHandle(fhandle, data) plot(data, fhandle(data))
Wywołanie tej funkcji z dwoma argumentami - uchwytem do funkcji oraz wektorem zmiennej niezależnej daje wykres tej funkcji (za pomocą funkcji wbudowanej plot(x,y)):
» plotFHandle(@cos, -pi:.01:pi)
W tym przykładzie pierwszym argumentem jest uchwyt do wbudowanej funkcji cos. Uchwyt do funkcji wykorzystywany jest do tworzenia funkcji anonimowych. Na przykład chcąc wprowadzić definicję funkcji ml zwracającej pierwiastek z sumy kwadratów argumentów, użyjemy zapisu:
» ml = @(x, y) sqrt(x.A2 + y.A2);
Wywołanie takiej funkcji wyglądałoby następująco:
» x = ml(3, 4)
5
Zauważmy, że ze gdyby argumentami aktualnymi były macierze, to względu na użycie skalarnych operacji potęgowania, w wyniku powstałaby macierz zawierająca wyniki działań na odpowiadających sobie elementach macierzy wejściowych x i y. Jedynym ograniczeniem jest w tym przypadku identyczność wymiarów obu macierzy.
W przypadku wywoływania funkcji bez argumentów za pomocą uchwytu do funkcji, należy użyć pustego argumentu ().
» tl = 8 pi; % lub tl = 0() pi;
» tl ()
3.1416
»
Użycie w definicji funkcji anonimowej nazw zmiennych nie występujących na liście argumentów formalnych, powoduje przyjęcie w tej definicji ich aktualnych wartości jako stałych. Na przykład zdefiniujemy funkcję następująco:
» A = 2;
» ml = 0(x, y) sqrt(x.A2 + y.A2)/A; a następnie dwukrotnie ją wywołamy, zmieniając stałą A:
» x = [3 4 5] ;
» ml (x (1), x (2) )
2.5000 » A = 5;
» ml (x (1) , x (2))
2.5000
Jak widzimy, wartość stałej A w definicji funkcji nie została zmieniona.
Z punktu widzenia semantyki języka, funkcja w MATLAB-ie każdorazowo otrzymuje/przekazuje wartości argumentów (wewnętrznie MATLAB optymizuje wszelkie zbędne operacje kopiowania).
Ilość argumentów w wywołaniu funkcji nie może być większa od ilości argumentów formalnych'. Przy wywołaniu, do funkcji zostają przekazane odpowiednie dane z wiersza wywołania i załadowane do lokalnych zmiennych funkcji w kolejności występowania na liście argumentów wejściowych. Jeśli argumentów aktualnych jest mniej, to nadmiarowe argumenty formalne nie zostaną zainicjowane. Funkcja wbudowana nargin określa, ile argumentów zostało przekazane do funkcji przy jej wywołaniu.
Ilość zwracanych argumentów określona jest w wierszu definicji funkcji. Dane, które mają być zwrócone przekazane zostają ze zmiennych występujących w liście argumentów wyjściowych do zmiennych występujących kolejno w wierszu wywołania. Wywołanie funkcji z liczbą argumentów wyjściowych mniejszą niż ilość argumentów formalnych powoduje, że nadmiarowe dane nie zostaną przekazane do programu wywołującego. Za pomocą funkcji można nargout określić ile argumentów wynikowych przewidziano w aktualnym wywołaniu.
Funkcje nargin oraz nargout występujące w kodzie podfunkcji lub funkcji zagnieżdżonych zwracają dane dotyczące danej funkcji, a nie funkcji pierwotnej.
1 Istnieje możliwość wprowadzania zmiennej liczby argumentów aktualnych - omówiono to w rozdziale 1.7.6.