1 / 32

Wykład 3 Dr Aneta Polewko-Klim

Wykład 3 Dr Aneta Polewko-Klim. https://play.google.com. 28. Funkcje. W ystę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. Jak to zrobić?.

jonah
Download Presentation

Wykład 3 Dr Aneta Polewko-Klim

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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. Jak to zrobić? - pierwszy wiersz m-pliku musi zawierać definicję nowej funkcji: słowo kluczowe function - nazwę funkcji – musi być taka sama jak nazwa pliku (bez rozszerzenia) listę argumentów wyjściowych

  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 !!!: 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. 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) 2. Jeśli funkcja ma tylko jeden argument wyjściowy, nawiasy możemy pominąć: function r = roots(c) 3. Jeżeli nie zwraca argumentów wyjściowych, może być zapisana w postaci: functionnazwa_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 funkcji=@(zmienna_1, …, 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 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. function W=licze(a,b) ifnargin<1 error('Mała liczba argumentów') elseifnargin==1 W=a.^2; elseifnargin==2 W=a.^2+b.^2; else error('Za dużo argumentów') end

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

  9. Test kompetencji: przedstaw możliwe rezultaty wykonania programu function []=ryswykres(varargin) x=1:10 switchnargin 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 www.mathworks.com

  11. 30. Funkcje ze zmienną liczbą parametrów wejściowych i wyjściowych http://www.youtube.com/watch?v=Od-cgGRlvi4

  12. 31. Użyteczne funkcje - obsługa myszki.

  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 http://www.youtube.com/watch?v=TXMhpKLi9hA

  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++. 2. 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 toolboxcompiler. 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, evaljeśli te działają na zmiennych z workspaceoraz 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 -p generuje kod C++ oraz działającą aplikację -x generuje plik typu MEX -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: http://www.mathworks.com/products/compiler/

  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 • Wariant 1 Uruchamiamy wpisując • w oknie „CommandWindow” • komende>> guide • 2. Wariant 2: • z menu fileMatlaba wybieramy opcję new GUI • otworzy się okno graficznego projektowania obiektów GUI. Wybieramy

  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) • - StaticText – 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. UWAGA Każdy obiekt wprowadzony w GUIDE ma własnego „PropertyInspector”, w którym można ustawić podstawowe informacje. 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”

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

  27. Propertyinspector - 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 • Wciskamy „ctrl+t” • Z menu Tools->run • 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. GUIDE - utrwalenie http://www.youtube.com/watch?v=D_hmws6dwgg

More Related