MATLAB
PODSTAWY PROGRAMOWANIA
Ćwiczenia 5
FUNKCJE
Wydział Inżynierii Lądowej i Środowiska
Katedra Mechaniki Budowli i Mostów
copyleft by Marcin Kujawa & Aukasz Smakosz
Funkcje
FunkcjÄ… nazywamy ciÄ…g instrukcji zapisany w oddzielnym pliku. Jej realizacja
zachodzi po wprowadzeniu nazwy funkcji oraz uporzÄ…dkowanego ciÄ…gu
argumentów oddzielonych przecinkami i ograniczonych okrągłymi
nawiasami.
B=ones(2,3)
Podstawienie - wynik działania Nazwa Argumenty, czyli dane
funkcji, czyli jej wartość, zostanie funkcji, niezbędne do realizacji funkcji.
podstawiony za zmienną B. W tym pokrywa się z Podaje się je w określonej
nazwą pliku, kolejności i oddziela
przypadku wynikiem działania
który zawiera przecinkami. Muszą mieć
funkcji jest macierz składająca się
realizowany w odpowiednią postać, np. skalar,
z jedynek. Wymiary macierzy
funkcji ciÄ…g wektor, macierz czy tekst -
określają podane w okrągłych
instrukcji. zależnie od typu funkcji.
nawiasach argumenty.
MATLAB ·ð 5. Funkcje ·ð 2013/2014
2/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Przykłady funkcji
a=sin(x)
Argument x może być skalarem, wektorem lub macierzą. Wynik działania funkcji,
podstawiony za a, ma tę samą postać oraz wymiar.
c=det(B)
Argument B musi być macierzą kwadratową. Wynik działania funkcji, podstawiony
za c, jest wyznacznikiem tej macierzy.
b=input('Komunikat','s')
Funkcja ma dwa argumenty typu tekstowego - pierwszy jest komunikatem, który
wyświetli się na ekranie, drugi mówi, że zmienna b, za którą został podstawiony ciąg
znaków wprowadzony przez użytkownika, jest typu tekstowego.
d=menu('tytul menu','opcja1','opcja2')
Wszystkie argumenty sÄ… typu tekstowego i oznaczajÄ…, kolejno, nazwÄ™ menu oraz jego
opcji. Wynik, podstawiony za zmiennÄ… d, jest numerem wybranej opcji.
MATLAB ·ð 5. Funkcje ·ð 2013/2014
3/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Przykłady funkcji
[m,n]=size(A)
Argument A może być macierzą dowolnych rozmiarów. Wynikiem działania funkcji
są dwie liczby, podstawione za m i n, będące, kolejno, liczbą wierszy i kolumn
macierzy A.
[x,y]=meshgrid(X,Y)
Argumenty X i Y są wektorami jednakowej długości. Wynikiem działania funkcji są
dwie macierze, podstawione za x i y, będące zbiorem współrzędnych siatki węzłów.
disp('Komunikat')
Funkcja ma jeden argument typu tekstowego. Wynikiem działania funkcji jest
komunikat, który pojawia się na ekranie po jej wywołaniu.
plot(x,y)
Argumenty x i y sÄ… wektorami lub macierzami o jednakowych rozmiarach. Wynikiem
działania funkcji jest wykres przyporządkowujący elementom wektora x elementy
wektora y.
MATLAB ·ð 5. Funkcje ·ð 2013/2014
4/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Własne funkcje
W Matlabie istnieje możliwość definiowania własnych funkcji i
wykorzystywania ich jako części programów i skryptów.
Przy tworzeniu i korzystaniu z własnych funkcji trzeba pamiętać o tym, że
różnią się one od skryptów składnią oraz sposobem pobierania danych.
Tworzone przez użytkownika funkcje mają ściśle określoną składnię pierwszej
aktywnej (nie będącej komentarzem) linii pliku.
Uwagi:
·ð W celu pobierania danych od użytkownika podczas tworzenia pliku
funkcji nie wykorzystujemy funkcji input.
·ð W pliku przed instrukcjÄ… function nie powinny znajdować siÄ™ żadne inne
komendy.
·ð W pliku funkcji nie należy wykorzystywać komendy clear.
·ð Plik funkcji musi znajdować siÄ™ w tym samym katalogu, co korzystajÄ…cy
z funkcji skrypt.
MATLAB ·ð 5. Funkcje ·ð 2013/2014
5/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Przykład:
Napisz funkcję, która oblicza wartość n!.
% Funkcja wyznacza wartosc n!
function [wynik]=silnia(n) % pierwsza aktywna linia kodu
wynik=1;
for i=1:n
wynik=wynik*i;
end
MATLAB ·ð 5. Funkcje ·ð 2013/2014
6/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Przykład:
Zmienna, która jest argumentem
Napisz funkcję, która oblicza wartość n!.
funkcji. Przy pisaniu pliku należy
ją traktować jako daną.
% Funkcja wyznacza wartosc n!
function [wynik]=silnia(n) % pierwsza aktywna linia kodu
Nazwa funkcji, musi być taka
Instrukcja Zmienna, która
sama jak nazwa pliku.
otwierająca zostanie wyświetlona
W tym przykładzie plik należy
plik funkcji. jako wynik
zapisać pod nazwą silnia.m
działania funkcji.
wynik=1;
CiÄ…g instrukcji realizowany w ramach funkcji.
for i=1:n
Argumenty funkcji należy w nim traktować jako
wynik=wynik*i;
dane, zmienne zdefiniowane jako wyniki powinny
end
być jedynym widocznym efektem działania funkcji.
Każda linia kodu, która mogłaby wyświetlić coś na
ekranie, powinna być zakończona średnikiem.
Definiowanie własnej funkcji
MATLAB ·ð 5. Funkcje ·ð 2013/2014
7/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Przykład:
Napisz skrypt, który wykorzystuje stworzoną funkcję. Niech skrypt akceptuje
tylko n, będące liczbami naturalnymi.
% Skrypt wyznacza wartosc n!
clear, clc
n1=input('podaj wartosc n: ');
while n1<=0 | n1~=round(n1)
clc
n1=input('wprowadz liczbe naturalna! ')
end
ns=silnia(n1)
MATLAB ·ð 5. Funkcje ·ð 2013/2014
8/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Przykład:
Napisz skrypt, który wykorzystuje stworzoną funkcję. Niech skrypt akceptuje
tylko n, będące liczbami naturalnymi.
% Skrypt wyznacza wartosc n!
Pętla wewnętrzna aktywuje się
clear, clc
tylko wtedy kiedy wprowadzona
wartość nie jest liczbą naturalną.
n1=input('podaj wartosc n: ');
while n1<=0 | n1~=round(n1)
clc
n1=input('wprowadz liczbe naturalna! ')
end
ns=silnia(n1) Zmienna, wstawiona w miejsce argumentu funkcji silnia, zostanie
potraktowana jako dana dla ciÄ…gu instrukcji w pliku funkcji.
Za ns został podstawiony wynik funkcji silnia.
Realizacja własnej funkcji
MATLAB ·ð 5. Funkcje ·ð 2013/2014
9/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Stwórz funkcję obliczającą pole koła w zależności od jego promienia. Następnie
stwórz skrypt wykorzystujący tę funkcję i kontrolującą czy wprowadzony
promień jest liczbą nieujemną.
MATLAB ·ð 5. Funkcje ·ð 2013/2014
10/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Stwórz funkcję obliczającą pole koła w zależności od jego promienia. Następnie
stwórz skrypt wykorzystujący tę funkcję i kontrolującą czy wprowadzony
promień jest liczbą nieujemną.
Definicja funkcji:
Nazwa pliku: pole.m
% Funkcja wyznacza pole kola
function [field]=pole(r)
field=pi*r^2;
Realizacja skryptu z funkcjÄ…:
clear, clc
promien=input('podaj wartosc promienia: ');
while promien<0
clc
promien=input('wprowadz liczbe nieujemna! ');
end
pole_kola=pole(promien)
MATLAB ·ð 5. Funkcje ·ð 2013/2014
11/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Funkcje wielu wartości
Funkcja może mieć więcej niż jeden wynik - żeby uzyskać te wyniki należy
zastosować specjalny typ podstawienia. Przykładami takich funkcji są size oraz
meshgrid.
[x,y]=meshgrid(X,Y)
Podstawienie - dwa wyniki Nazwa funkcji Argumenty
działania funkcji, czyli jej
wartości, zostaną podstawione
za zmienne x i y.
MATLAB ·ð 5. Funkcje ·ð 2013/2014
12/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Przykład:
Stwórz funkcję obliczającą pole i obwód koła w zależności od jego promienia
oraz prosty skrypt jÄ… realizujÄ…cy.
Definicja funkcji: Realizacja skryptu z funkcjÄ…:
% Funkcja wyznacza pole i clear, clc
obwod kola
function [field,peri]=kolo(r) promien=input('promien: ');
field=pi*r^2; [pole,obwod]=kolo(promien)
peri=2*pi*r;
Podstawienie za kolejne
Kolejne wyniki działania funkcji.
wyniki działania funkcji.
Nazwa pliku: kolo.m
MATLAB ·ð 5. Funkcje ·ð 2013/2014
13/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Stwórz funkcję obliczającą pierwiastki równania kwadratowego postaci
. Następnie stwórz prosty skrypt wykorzystujący tę funkcję.
MATLAB ·ð 5. Funkcje ·ð 2013/2014
14/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
ZADANIE DO WYKONANIA NA ZAJCIACH
Stwórz funkcję obliczającą pierwiastki równania kwadratowego postaci
. Następnie stwórz prosty skrypt wykorzystujący tę funkcję.
Definicja funkcji: Realizacja skryptu z funkcjÄ…:
% Funkcja wyznacza pierw. clear, clc
rown. kwadratowego a=1;
function [x1,x2]=kwad(a,b,c) b=0;
c=-4;
delta=b^2-4*a*c; [x1,x2]=kwad(a,b,c)
x1=(-b-sqrt(delta))/2/a;
x2=(-b+sqrt(delta))/2/a;
Nazwa pliku: kwad.m
MATLAB ·ð 5. Funkcje ·ð 2013/2014
15/15
Marcin Kujawa ·ð Aukasz Smakosz ·ð Politechnika GdaÅ„ska ·ð WILiÅš ·ð Katedra Mechaniki Budowli i Mostów
Wyszukiwarka
Podobne podstrony:
MATLAB Prezentacja 2instrukcja prezentacja2Prezentacja MG 05 2012Prezentacja ekonomia instytucjonalna na MoodleMATLAB cw SkryptySekrety skutecznych prezentacji multimedialnych413 (B2007) Kapitał własny wycena i prezentacja w bilansie cz IISIMULINK MATLAB to VHDL RouteIMiR NM2 Introduction to MATLAB18 Prezentacjaprezentacja z budoAntygeny i Imunogennosc PREZENTACJAEtapy tworzenia prezentacjiGeneza polityki spójności Unii Europejskiej prezentacjaPrezentacja VI dziawięcej podobnych podstron