Matlab oferuje mnóstwo gotowych funkcji, jednak użytkownik może też tworzyć własne funkcje - pisząc je w edytorze i zapisując do pliku z nazwą taką samą jak nazwa funkcji - a następnie może używać je identycznie jak funkcje Matlab'a.
Własne funkcje warto pisać gdy:
Definicja funkcji w Matlabie musi rozpoczynać się od linii o następujacej strukturze:
function wektor_zmiennych_wynikowych = nazwa_funkcji(parametry_wejściowe) |
Na przykład: function [y1, y2, y3] = fun1(x1, x2, x3, x4)
W przypadku gdy w wyrażeniach powtarzają się pewne działania lecz dotyczą one różnych danych, może być opłacalne napisanie własnej funkcji. Na przykład jeśli dla danego x mamy obliczyć wyrażenie:
i być może następne wyrażenia w których występuje pierwiastek z sumy kwadratów to można zdefiniować funkcję:
Trzeba zapisać ją do pliku o nazwie pwsk.m
Komentarze pisane po znaku % są ważne gdyż objaśnią sposób używania tej funkcji gdy wpiszemy "help pwsk".
Wypróbuj działanie funkcji dla kilku wartości parametrów:
>> pwsk(1,1) ans = 1.4142Nadaj wartość zmiennej P a następnie sprawdź czy wstawienie przyprostokątnych (jak na rys.) do funkcji pwsk(...) da taką samą wartość. ![]() |
Funkcją taką można także wykorzystać w dowolnym programie (pisanym w oddzielnym pliku), na przykład w takim jak poniżej, obliczającym dla różnych wartości:x:
Podany wcześniej przykład skryptu (procedury) do rozwiązywania równania kwadratowego pokazano poniżej przerobiony na funkcję:
Funkcję należy zapisać do pliku o takiej samej nazwie jak nazwa funkcji, a więc: prkw.m
A oto dwukrotne użycie tej funkcji dla rozwiązania dwu równań kwadratowych:
1) dla: A= -2, B=3, C=4
2) dla: A= -132, B=343, C=564
[x1,x2]=prkw(-2,3,4) x1 = 2.3508 x2 = -0.8508 >> [x1,x2]=prkw(-132,343,564) x1 = 3.7407 x2 = -1.1422 |
Funkcje użytkownika tak jak i funkcje standardowe (na przykład sinus) nie zawierają instrukcji wejścia/wyjścia bo wprowadzenie danych następuje przez parametry (tutaj: a,b,c). Wynik (w Matlabie) może być macierzą a w szczególności wektorem lub skalarem.
UWAGA:
Wszystkie zmienne użyte wewnątrz funkcji są lokalne to znaczy nie są "widziane" z zewnątrz co można sprawdzić wpisując nazwę dowolnej z nich w oknie komend i kończąc klawiszem ENTER.
Funkcja może być wywołana samodzielnie (z konkretnymi parametrami) ale najczęściej opłaca się ją napisać gdy będzie używana w innych wyrażeniach i instrukcjach jako cegiełka większego programu.