MATLAB Prezentacja 5

background image

MATLAB

PODSTAWY PROGRAMOWANIA

Ćwiczenia 5

FUNKCJE







Wydział Inżynierii Lądowej i Środowiska
Katedra Mechaniki Budowli i Mostów

copyleft by Marcin Kujawa & Łukasz Smakosz

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

2/15

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
funkcji
, czyli jej wartość, zostanie
podstawiony za zmienną B. W tym
przypadku wynikiem działania
funkcji
jest macierz składająca się
z jedynek. Wymiary macierzy
określają podane w okrągłych
nawiasach argumenty.

Nazwa

funkcji,

pokrywa się z

nazwą pliku,
który zawiera

realizowany w

funkcji ciąg

instrukcji.

Argumenty, czyli dane
niezbędne do realizacji funkcji.
Podaje się je w określonej
kolejności
i oddziela
przecinkami. Muszą mieć
odpowiednią postać, np. skalar,
wektor, macierz czy tekst -
zależnie od typu funkcji.

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

3/15

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.

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

4/15

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.

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

5/15

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
.

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

6/15

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

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

7/15

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

Instrukcja
otwierająca
plik funkcji.

Zmienna, która
zostanie wyświetlona
jako wynik
działania funkcji
.

Nazwa funkcji, musi być taka
sama jak nazwa pliku.
W tym przykładzie plik należy
zapisać pod nazwą

silnia

.m

Zmienna, która jest argumentem
funkcji. Przy pisaniu pliku należy
ją traktować jako daną.

Ciąg instrukcji realizowany w ramach funkcji.
Argumenty funkcji należy w nim traktować jako

dane

, zmienne zdefiniowane jako

wyniki

powinny

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

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

8/15

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)



background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

9/15

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)



Pętla wewnętrzna aktywuje się
tylko wtedy kiedy wprowadzona
wartość nie jest liczbą naturalną.

Realizacja własnej funkcji

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

.

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

10/15

ZADANIE DO WYKONANIA NA ZAJĘCIACH

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ą.



background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

11/15

ZADANIE DO WYKONANIA NA ZAJĘCIACH

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:

% 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)

Nazwa pliku:

pole

.m

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

12/15

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
działania funkcji
, czyli jej
wartości, zostaną podstawione
za zmienne x i y.

Nazwa funkcji

Argumenty

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

13/15

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:

% Funkcja wyznacza pole i
obwod kola

function

[field,peri]=kolo(r)

field=pi*r^2;

peri=2*pi*r;

Realizacja skryptu z funkcją:

clear, clc

promien=input(

'promien: '

);

[pole,obwod]=kolo(promien)

Kolejne wyniki działania funkcji.

Podstawienie za kolejne
wyniki działania funkcji.

Nazwa pliku:

kolo

.m

background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

14/15

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Stwórz funkcję obliczającą pierwiastki równania kwadratowego postaci

. Następnie stwórz prosty skrypt wykorzystujący tę funkcję.



background image

MATLAB

5. Funkcje  2013/2014

Marcin Kujawa

Łukasz Smakosz

Politechnika Gdańska

WILiŚ

Katedra Mechaniki Budowli i Mostów

15/15

ZADANIE DO WYKONANIA NA ZAJĘCIACH

Stwórz funkcję obliczającą pierwiastki równania kwadratowego postaci

. Następnie stwórz prosty skrypt wykorzystujący tę funkcję.



Definicja funkcji:


% Funkcja wyznacza pierw.
rown. kwadratowego

function

[x1,x2]=kwad(a,b,c)


delta=b^2-4*a*c;

x1=(-b-sqrt(delta))/2/a;

x2=(-b+sqrt(delta))/2/a;

Realizacja skryptu z funkcją:


clear, clc

a=1;

b=0;

c=-4;

[x1,x2]=kwad(a,b,c)


Nazwa pliku:

kwad

.m


Wyszukiwarka

Podobne podstrony:
MATLAB Prezentacja 4 id 287604
MATLAB Prezentacja 2
MATLAB Prezentacja 3 id 287603
MATLAB Prezentacja 4 id 287604
MATLAB Prezentacja 2
MATLAB Prezentacja 3
prezentacja finanse ludnosci
prezentacja mikro Kubska 2
Religia Mezopotamii prezentacja
Prezentacja konsument ostateczna
Strategie marketingowe prezentacje wykład
motumbo www prezentacje org
lab5 prezentacja
Prezentacja 18
Materialy pomocnicze prezentacja maturalna

więcej podobnych podstron