1. chcemy aby program składał się z bloków funkcjonalnych o ściśle określonym działaniu - co czyni program lepiej zrozumiałym i jest szczególnie zalecane w przypadku długich programów
2. funkcja będzie przynajmniej kilkukrotnie wykorzystywana w danym programie Definicja funkcji w Matlabie musi rozpoczynać się od linii o następującej strukturze:
function wektor zmiennych wynikowych = nazwa_funkcji(parametry wejściowe)
Na przykład: function [y 1, y2, y3] = funl(xl, x2, x3, x4)
% Funkcja silnia wyznacza watosc n! function [wynik]= silnia(n)
wynik=l; for i=l:n
wynik=wynik*i;
end_
Po zapisaniu tej funkcji do pliku, który musi w tym przypadku mieć nazwę silnia.m można wywoływać funkcję z konkretnymi wartościami argumentu n:
» silnia(5)
120
» silnia(9) ans =
362880
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:
p _ 1^ + x j być może następne wyrażenia w których występuje pierwiastek z 4x* +16
sumy kwadratów to można zdefiniować funkcję: function c = pwsk(a,b)
% dla dwu liczb danych jako argumenty oblicza pierwiastek z sumy ich kwadratów |c = sqrt(aA2+bA2)
Trzeba zapisać ją do pliku o nazwie pwsk.m a następnie można wykorzystać ją na przykład w takim programie:_
K=1
jwhile x ~ = 0 x = input('x-);
p = (1 - pwsk(3 ,x))/(pwsk(2 *xA2, 4) disp('p='); disp(p) ęnd
Podany wcześniej przykład skryptu (procedury) do rozwiązywania równania kwadratowego pokazano poniżej przerobiony na funkcję: