Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Elementy programowania w MATLABIE Opracował Dr inż. Mirosław Kwiesielewicz Wydział Elektrotechniki i Automatyki Politechnika Gdańska

Podobne prezentacje


Prezentacja na temat: "Elementy programowania w MATLABIE Opracował Dr inż. Mirosław Kwiesielewicz Wydział Elektrotechniki i Automatyki Politechnika Gdańska"— Zapis prezentacji:

1 Elementy programowania w MATLABIE Opracował Dr inż. Mirosław Kwiesielewicz Wydział Elektrotechniki i Automatyki Politechnika Gdańska url:

2 M. Kwiesielewicz. Elementy programowania w MATLABIE 2 Wprowadzenie zPliki zawierające kod języka programowania MATLABA nazywają się M-plikami: yfunkcje, które na podstawie wprowadzonych argumentów zwracają wynik, yskrypty, wykonujące sekwencje komend MATLABA; zM-pliki tworzy się za pomocą edytora tekstowego zWykonanie M-pliku poprzez wywołanie go z poziomu poleceń MATLABA

3 M. Kwiesielewicz. Elementy programowania w MATLABIE 3 Charakterystyka M-plików Skrypty zNie posiadają argumentów wejściowych, ani wyjściowych zOperują na danych w przestrzeni roboczej zWygodne, kiedy często należy wykonać sekwencję tych samych poleceń Funkcje z Mogą posiadać argumenty wejściowe i wyjściowe z Wewnętrzne zmienne są lokalne dla funkcji z Wygodne do rozszerzenia MATLABA o własne aplikacje

4 M. Kwiesielewicz. Elementy programowania w MATLABIE 4 Struktura funkcji function f = fact(n) % FACT Factorial % FACT(N) return... % Put simply, FACT(N).... f=prod(1:n); Linia definicji. Nazwa funkcji oraz argumenty wejściowe i wyjściowe Linia H1. Wykorzystywana przez polecenie lookfor Tekst pomocy. Wyświetlany przy pomocy polecenia help, łącznie z linią H1. Ciało funkcji. Kod obliczeniowy

5 M. Kwiesielewicz. Elementy programowania w MATLABIE 5 Skrypty zSkrypty są najprostszym rodzajem M-plików. zNie posiadają ani argumentów wejścia, ani wyjścia zSą wygodne do wielokrotnego wykonywania sekwencji komend zOperują na danych z przestrzeni roboczej (WorkSpace) lub tworzą nowe dane zUtworzone dane również pamiętane są w przestrzeni roboczej zPo zakończeniu działania skryptu wszystkie dane pozostają w przestrzeni roboczej

6 M. Kwiesielewicz. Elementy programowania w MATLABIE 6 Przykładowy skrypt % An M-file script theta = -pi:0.01:pi; rho(1,:) = 2*sin(5*theta).^2;... for i=1:4 polar(theta,rho(i,:)) pause end Linia komentarza Linie obliczeń Wyświetlanie wyników

7 M. Kwiesielewicz. Elementy programowania w MATLABIE 7 Przykład funkcji function y = average(x) % AVERAGE Mean of vector elements. % AVERAGE(X), where X is a vector, is the mean of vector elements. % Non-vector input results in an error. [m,n] = size(x); if (~((m==1) | (n==1) | (m==1 & n==1))) error('Input must be a vector') end y = sum(x)/length(x);% Actual computation

8 M. Kwiesielewicz. Elementy programowania w MATLABIE 8 Nazwy funkcji zNazwa funkcji musi się zaczynać litrą zMATLAB wykorzystuje 31 pierwszych znaków zGeneralnie liczba znaków zależy od systemu operacyjnego zJeśli nazwa funkcji w linii definicji jest inna niż nazwa pliku, w którym funkcja jest zapamiętana, przyjmowana jest ta ostatnia zLepiej jednak używać tych samych nazw

9 M. Kwiesielewicz. Elementy programowania w MATLABIE 9 Kolejność poszukiwania nazwy zzmienne w przestrzeni roboczej zzbiór podfunkcji zawartych w tym samym pliku co funkcja wywołująca zzbiór funkcji w katalogu prywatnym zkatalogi ustawione w ścieżce dostępu Uwaga. Funkcja po wywołaniu przechowywana jest w pamięci w postaci pseudokodu. Do jej usunięcia komenda clear.

10 M. Kwiesielewicz. Elementy programowania w MATLABIE 10 Tworzenie pseudokodu funkcji zPseudokod funkcji tworzy się przy użyciu polecenia pcode, np.: pcode average; zPolecenie to tworzy Pseudokod funkcji w pliku average.p zPolecenie jest użyteczne w przypadku wywoływania aplikacji graficznych oraz, gdy użytkownik chce ukryć kod napisanej funkcji

11 M. Kwiesielewicz. Elementy programowania w MATLABIE 11 Przekazywanie argumentów funkcji zMATLAB przekazuje te parametry funkcji przez wartość, które funkcja modyfikuje zJeśli funkcja nie zmienia argumentu, ale używa go tylko w obliczeniach, to MATLAB przekazuje argument przez odniesienie w celu optymalizacji wykorzystania pamieci

12 M. Kwiesielewicz. Elementy programowania w MATLABIE 12 Przestrzeń robocza funkcji zKażda M-funkcja posiada własny obszar pamięci, oddzielony od przestrzeni roboczej MATLABA zObszar ten zwany jest przestrzenią roboczą funkcji zKażda funkcja posiada swój własny obszar roboczy zW MATLABIE można zdefiniować zmienne globalne

13 M. Kwiesielewicz. Elementy programowania w MATLABIE 13 Sprawdzenie liczby argumentów funkcji Funkcje nargin i nargout pozwalają na określenie z jaką liczbą argumentów wejściowych i wyjściowych funkcja jest wywoływana, n.p.: function c = testtarg1(a,b) if (nargin == 1) c = a.^2; eleseif (nargin == 2) c = a + b; end;

14 M. Kwiesielewicz. Elementy programowania w MATLABIE 14 Przekazanie liczby zmiennych argumentów zFunkcje varargin i varagout pozwalają na przekazanie liczby wejść i zwrócenie liczby wyjść. zMATLAB przechowuje argumenty w specjalnej tablicy cell array.

15 M. Kwiesielewicz. Elementy programowania w MATLABIE 15 Zmienne lokalne i globalne zKażda funkcja, zdefiniowana w MATLABIE posiada swoje własne zmienne lokalne zW celu dostępu do danej zmiennej z innej funkcji lub przestrzeni roboczej MATLABA należy tą zmienną zadeklarować jako globalną we wszystkich miejscach, gdzie ma dostępna, n.p.: global ALPHA BETA zZalecane jest użycie wielkich liter.

16 M. Kwiesielewicz. Elementy programowania w MATLABIE 16 Zmienne i stałe specjalne zans - zawiera ostatnią zmienną, jeśli do wyrażenia nie przypisano żadnej zmiennej wyjściowej zeps - dokładność operacji zmiennoprzecinkowych w MATLABIE zrealmax - największa liczba zmiennoprzecinkowa zrealmin - najmniejsza liczba zmiennoprzecinkowa zpi zi,j - jednostki urojone zinf, NaN, ver

17 M. Kwiesielewicz. Elementy programowania w MATLABIE 17 Instrukcje sterujące zInstrukcja warunkowa if, else i elseif zInstrukcja wyboru switch z case i otherwise zPętla while zPętla for

18 M. Kwiesielewicz. Elementy programowania w MATLABIE 18 Instrukcja warunkowa if, else i elseif Składnia if wyrażenie_logiczne instrukcje elseif wyrażenie_logiczne instrukcje else instrukcje end Przykład if n < 0 disp(‘musi byc >=0’); elseif rem(n,2)==0 a=n/2; else a=(n+1)/2; end

19 M. Kwiesielewicz. Elementy programowania w MATLABIE 19 Instrukcja wyboru Składnia switch wyrażenie_logiczne case wartość1 instrukcje case wartość2 instrukcje otherwise instrukcje end Przykład switch input_num case -1 disp(‘negative one’); case 0 disp(‘zero’); case 1 disp(‘positive one’); otherwise disp(‘other value’); end

20 M. Kwiesielewicz. Elementy programowania w MATLABIE 20 Pętla while Składnia while wyrażenie instrukcje end zPętla while wykonuje instrukcje tak długo dopóki wyrażenie jest prawdziwe zW przypadku macierzy wszystkie jej elementy muszą być prawdziwe zMożna ją przerwać poleceniem break Przykład n=1; while prod(1:n) < 1e100 n=n+1; end z Powyższa pętla znajduje pierwszą liczbę naturalną dla której n! jest liczbą 100 cyfrową

21 M. Kwiesielewicz. Elementy programowania w MATLABIE 21 Pętla for Składnia for indeks=start:krok:koniec instrukcje end zDomyślna wartość kroku wynosi 1 zDla ujemnego kroku koniec kiedy indeks < koniec Przykład min_value=a(1); for i=2:n if a(i)

22 M. Kwiesielewicz. Elementy programowania w MATLABIE 22 Podfunkcje function [avg, mec]=newstats(u) %NEWSTATS Find mean and..... n=length(u); avg=mean(u,n); med=median(n,u); function a=mean(v,n) %Calculate average a=sum(v)/n; function m=median(v,n) %Calculate median... end Funkcja główna Primary function Podfunkcja 1 Subfunction Podfunkcja 2 Subfunction

23 M. Kwiesielewicz. Elementy programowania w MATLABIE 23 Funkcje prywatne zMuszą być umieszczone w katalogu o specjalnej nazwie private i są widoczne tylko przez funkcje z katalogów wyższych zMożna w ten sposób definiować funkcje o takich samych nazwach jak oryginalne funkcje pakietu zNależy utworzyć po prostu katalog private

24 M. Kwiesielewicz. Elementy programowania w MATLABIE 24 Polecenia użyteczne przy tworzeniu własnych M-plików zdisp - wyświetlenie tekstu lub macierzy zecho - wyświetlenie tekstu lub macierzy zerror - przerwanie wykonywania M-pliku zinput - wprowadzenie danej wejsciowej zkeybord - udostępnienie klawiatury zmenu - tworzenie listy wyboru zpause - zatrzymanie wykonywania M-pliku zreturn - powrót do funkcji wywołującej lub linii komend

25 M. Kwiesielewicz. Elementy programowania w MATLABIE 25 Niestandardowe uruchamianie poleceń zeval - uruchomienie polecenia podanego jako stała łańcuchowa zfeval - wywołanie i przekazanie parametrów funkcji

26 M. Kwiesielewicz. Elementy programowania w MATLABIE 26 Funkcje pomocnicze zclock - CLOCK = [year month day hour minute seconds] zcputime - czas w sekundach od uruchomienia MATLABA zetime - pomiar różnicy czasów zflops - liczba wykonanych operacji zminnoprzecinkowych ztic, toc - załączenie i wyłączenie stopera

27 M. Kwiesielewicz. Elementy programowania w MATLABIE 27 Operacje wejścia wyjścia zOtwieranie i zamykanie plików zOperacje wejścia/wyjścia niesformatowane zOperacje wejścia/wyjścia sformatowane zOperacje wskaźnikowe

28 M. Kwiesielewicz. Elementy programowania w MATLABIE 28 Polecenie input zSkładnia x=input(‘text’) x=input(‘text’,’s’) zOpis Wyświetla tekst i zwraca zmienną wprowadzoną przez użytkownika z Przykład i=input(‘Czy liczyc dalej?(T/N)’,’s’); if isempty(i) i=‘Y’; end

29 M. Kwiesielewicz. Elementy programowania w MATLABIE 29 Polecenie disp zSkładnia disp(X) zOpis Wyświetla macierz z Przykład disp(‘text’)

30 M. Kwiesielewicz. Elementy programowania w MATLABIE 30 Polecenie fprintf zSkładnia fprintf(łańcuch,lista) zOpis Formatowane wyświetlanie wyniku - łańcuch oznacza format - lista listę zmiennych z Przykłady elementów łańcucha %f %.3f %.3e z Więcej szczegółów - opis języka C


Pobierz ppt "Elementy programowania w MATLABIE Opracował Dr inż. Mirosław Kwiesielewicz Wydział Elektrotechniki i Automatyki Politechnika Gdańska"

Podobne prezentacje


Reklamy Google