Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykład 3 Dr Aneta Polewko-Klim https://play.google.com.

Podobne prezentacje


Prezentacja na temat: "Wykład 3 Dr Aneta Polewko-Klim https://play.google.com."— Zapis prezentacji:

1 Wykład 3 Dr Aneta Polewko-Klim https://play.google.com

2 28. Funkcje. Występują dwa rodzaje funkcji: a) funkcje wbudowane jak np. sqrt b) funkcje przechowywane w m-plikach (właśnie te m-pliki funkcyjne możemy tworzyć samodzielnie. - pierwszy wiersz m-pliku musi zawierać definicję nowej function funkcji: słowo kluczowe function - nazwę funkcji – musi być taka sama jak nazwa pliku (bez rozszerzenia) listę argumentów wyjściowych Jak to zrobić?

3 Definicja funkcji function [wart_fun1, wart_fun2,...]=nazwa_funkcji(parametr1, parametr2,...) % ewentualny opis funkcji w formie komentarza wart_fun1=wynik1; wart_fun2=wynik2;... end function [y]=radst(x) %przelicza radiany na stopnie x – ilość radianów y=(x.*180)/pi; Ważne !!!: Ważne !!!: zmienne utworzone podczas działania funkcji są usuwane z chwilą zakończenia wykonywania funkcji i nie są widoczne poza nią, podobnie zmienne utworzone poza funkcją nie są widoczne w jej wnętrzu. Funkcja operuje więc na zmiennych lokalnych. global A B C Aby zmienna z przestrzeni roboczej Matlaba była widoczna w ciele funkcji należy zadeklarować ją jako globalną i deklarację tą powtórzyć w ciele funkcji global A B C

4 Szczegóły 1. Jeśli funkcja posiada kilka argumentów wyjściowych, oddzielamy je przecinkiem, a wszystkie umieszczamy w nawiasach kwadratowych np: function [a, b, c] = normest(w, n, p, r) function [a, b, c] = normest(w, n, p, r) 2. Jeśli funkcja ma tylko jeden argument wyjściowy, nawiasy możemy pominąć: function r = roots(c) function r = roots(c) 3. Jeżeli nie zwraca argumentów wyjściowych, może być zapisana w postaci: function nazwa_funkcji(arg_wej) function nazwa_funkcji(arg_wej) 4. Nazwy funkcji muszą się rozpoczynać literą, a pozostała część może być kombinacją liter, cyfr i znaku podkreślenia. Jeżeli nazwa pliku różni się od nazwy funkcji, to zwycięża nazwa pliku, dlatego powinno się stosować identyczne nazwy funkcji i pliku. 5. Kolejne linie po słowie function zaczynające się od % stanowią help

5 Funkcja - definicja W przypadku gdy mamy małą ilość instrukcji i gdy chcemy umieścić funkcję w skrypcie możemy wykorzystać: nazwa …, zmienna_n) (instrukcja)

6 Przydatne funkcje - funkcje Matlab przydatne podczas budowania funkcji użytkownika. - nargin - ustala liczbę wywołanych argumentów wejściowych - nargout - ustala liczbę wywołanych argumentów wyjściowych

7 Przykład function W=licze(a,b) if nargin<1 error('Mała liczba argumentów') elseif nargin==1 W=a.^2; elseif nargin==2 W=a.^2+b.^2; else error('Za dużo argumentów') end Napisać funkcję, która wywołana z jednym parametrem oblicza a^2, natomiast przy dwóch argumentach a i b obliczy a^2+b^2.

8 29. Funkcje ze zmienną liczbą parametrów wejściowych i wyjściowych - definicja function varargout =nazwa funkcji (varargin) function [ ] =nazwa funkcji (varargin) function varargout =nazwa funkcji ()

9 Test kompetencji: przedstaw możliwe rezultaty wykonania programu function []=ryswykres(varargin) x=1:10 switch nargin case 1 plot(x,varargin{1}.*x) case 2 plot(x,varargin{2}.*x.^2+varargin{1}.*x) otherwise error('Brak mozliwości') end

10 Funkcje ze zmienną liczbą parametrów wejściowych i wyjściowych Konwertowanie obrazu RGB na obraz binarny

11 30. Funkcje ze zmienną liczbą parametrów wejściowych i wyjściowych

12 31. Użyteczne funkcje - obsługa myszki. FunkcjaOpis [x,y]=ginput(n) [x,y,przycisk]=ginput(n) [x,y]=ginput [x,y,przycisk]=ginput Funkcja pobiera współrzędne n punktów wskazanych przez użytkownika kursorem i zaznaczonych przez wciśnięcie klawisza lub przycisku myszki. Zwracane są współrzędne x i y punktu oraz kod klawisza lub przycisku myszki. Działanie funkcji kończymy klawiszem Enter. gtext(napis)Funkcja pozwala umieścić podany napis w wybranym przez użytkownika miejscu.

13 32. Dla zaawansowanych: pętle równoległe parfor, praca na kilku procesorach matlabpool Funkcja włączenia matlabpool open ilość procesorów np.matlabpool open 8

14 Dla zaawansowanych: pętle równoległe parfor, praca na kilku rdzeniach matlabpool

15 33. Kompilacja. Praktyczny program to taki który piszesz z wizją końca:

16 Kompilacja 1. Kompilator Matlab zamienia funkcję zapisaną w pliku typu M-file na wersję wykonywalną, bibliotekę MEX, plik lub kod programu w C czy C Rodzaj generowanych plików: kod w języku C do budowania plików typu MEX, kod w języku C lub C++, biblioteki dynamiczne i statyczne oraz wykonywalną aplikację 3. Należy posiadać zainstalowany toolbox compiler. 4. Plik wykonywalny exe będzie działać na komputerze na którym jest zainstalowana taka sama wersja matlaba.

17 Uwagi dotyczące budowania programu 1. Nie można używać skryptów; 2. Program musi bazować/wykorzystywać wyłącznie funkcje; 3. Gui wykonane za pomocą guide; 4. Wszystkie m-pliki z funkcjami należy podać przy kompilacji; 5. Wymagane aby zmienne w funkcjach były globalne. 6. Kompilacji nie podlegają funkcje korzystające z poleceń input, eval jeśli te działają na zmiennych z workspace oraz operujące na zmiennych globalnych

18 Funkcja do kompilacji mcc [-opcja] funkcja [funkcja2.] [mex1. mexN] [mlib1. mlibN] funkcja - nazwa funkcji poddawana kompilacji, mex - nazwa pliku typu MEX mlib - nazwa biblioteki opcje (wybrane): -c generuje kod C -c generuje kod C -p generuje kod C++ oraz działającą aplikację -p generuje kod C++ oraz działającą aplikację -x generuje plik typu MEX -x generuje plik typu MEX -m generuje wykonywalną aplikacją -m generuje wykonywalną aplikacją

19 Przykłady opcji >> mcc -m funkcja % generuje wykonywalną aplikację na podstawie pliku funkcja.m >> mcc -m funkcja1 funkcja2 % generuje wykonywalne aplikacje na podstawie plików funkcja1.m oraz funkcja2.m >> mcc -T compile:exe funkcja % generuje wykonywalną aplikację

20 Jeśli chcesz wiedzieć więcej zajrzyj na:

21 34. GUI GUI (Graphical User Interface) system, który umożliwia użytkownikowi automatyczne wydawanie wielu poleceń (np. poprzez naciśnięcie określonego klawisza). Projektowanie GUI to pierwszym kroki do kreowania wolno stojących aplikacji. W Matlabie do projektowania GUI służy program GUIDE (Graphical User Interface Development Enviroment) – tworzymy interfejs dla użytkownika.

22 34. GUIDE - uruchomienie 2. Wariant 2: z menu file Matlaba wybieramy opcję new GUI otworzy się okno graficznego projektowania obiektów GUI. 1.Wariant 1 Uruchamiamy wpisując w oknie Command Window >> guide komende >> guide Wybieram y

23 Menu obiektów używanych w GUI. - Push Button – przycisk (dzwonkowy) - Slider – suwak - Radio Button – wybór jednej z opcji w grupie - Checkbox - włącznik - Edit Text – tekst edytowalny (w trakcie działania GUI) - Static Text – tekst (nie zmieniany w trakcie działania GUI) - Popup Menu – lista rozwijana - Listbox - Toggle Button – przełącznik (posiada dwa stany: aktywny lub nie aktywny) - Axes – pole wykresu -Panel – ramka -Button Group - może sterować obiektami znajdującymi się w jego wnętrzu - ActiveX Control – inne funkcje. np. zegar Windows

24 Przykład – tworzymy wykres

25 W centrum (część zakratkowana) znajduje się obszar wyświetlany po uruchomienu aplikacji. Możliwości uruchomienia Property Inspector: 1. klikając dwukrotnie w dowolnym miejscu; 2. Kliknięcie prawym przyciskiem myszy i z rozwijanego menu wybranie opcji Property Inspector 3. Z menu View wybranie opcji Property Inspector UWAGA Każdy obiekt wprowadzony w GUIDE ma własnego Property Inspector, w którym można ustawić podstawowe informacje.

26 Najistotniejsze pola String String wpisujemy rysuj dzięki temu po włączeniu GUI nasz przycisk będzie miał tą właśnie nazwę. Tag Tag – wpisujemy rysuj w wygenerowanej funkcji pojawi się np. rysuj_Callback

27 Property inspector - wykresu. Opcję Units przestawiamy na centymetry, a następnie wielkość wykresu np. na 10x6 cm, pozycje x=1, y=3 Naciskamy + przy zakładce Position i wybieramy zmieniamy width na 15, a height na 10. (Zatwierdzamy przyciskiem Enter)

28 Start programu - 3 sposoby 1.Wciskamy ctrl+t 2.Z menu Tools->run 3.Wciskamy zieloną strzałeczkę w prawym górnym rogu Czy chcemy zapisać zmiany? Bez zapisania zmian nie da się uruchomić GUI.

29 Po zapisaniu wygeneruje się nam automatycznie m-file, o tej samej nazwie co plik fig. Wspólnie tworzą one informacje dla Matlaba jak ma wyglądać GUI.

30 function rysuj_Callback(hObject, eventdata, handles) x1=0:0.2:6.2; y1=sin(x1); y2=cos(x1) plot(x1,y1,r,x1,y1,rx); plot(x1,y2,b,x1,y2,bo);

31

32 GUIDE - utrwalenie


Pobierz ppt "Wykład 3 Dr Aneta Polewko-Klim https://play.google.com."

Podobne prezentacje


Reklamy Google