Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wprowadzenie do Matlaba Radosław Głowiński

Podobne prezentacje


Prezentacja na temat: "Wprowadzenie do Matlaba Radosław Głowiński"— Zapis prezentacji:

1 Wprowadzenie do Matlaba Radosław Głowiński

2 ● Kilka słów o MatlabieKilka słów o Matlabie ● Zaczynamy z macierzamiZaczynamy z macierzami ● Wykresy Wykresy ● Programowanie Programowanie

3 ● Matlab jest językiem służącym do obliczeń technicznych. ● Łączy obliczanie, wizualizację oraz programowanie w przyjaznym interfejsie. ● Podstawowym elementem danych są macierze (nie musimy martwić się o rozmiar). ● Dysponuje rozbudowaną dokumentacją. MATLAB (Matrix Laboratory) Wprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy Programowanie

4 Matlab składa się z pięciu części: Środowisko pracy – zbiór narzędzi pomocnych przy pracy z Matlabem (wiele z nich to GUI) Biblioteka funkcji matematycznych (suma, sinus, wartości własne macierzy, itp.) Język matlab – język wysokiego poziomu z funkcjami, strukturami danych, wejściem/wyjściem oraz możliwościami programowania obiektowego, Handle Graphics – jest to system graficzny matlaba, obsluguje wyświetlanie dwu oraz trójwymiarowych danych, przetwarzanie obrazów, animacje. Zawiera rownież komendy do tworzenia kompletnego interfesju użytkownika we własnych aplikacjach napisanych w matlabie, API – biblioteka umożliwiajaca nam pisanie programów w C oraz Fortranie, ktore będą współpracowały z Matlabem. Wprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy Programowanie

5 W Matlabie macierz jest prostokątną tablicą liczb, specjalne znaczenie mają czasami macierze 1x1 (skalary) oraz macierze składające się z jednego wiersza lub jednej kolumny (wektory). Są inne sposoby przechowywania danych liczbowych i nieliczbowych, lecz na początek najlepiej myśleć o wszystkim jak o macierzach. Zaczniemy od przykładu macierzy pojawiającej się na obrazie w renesansie, który namalował niemiecki artysta i matematyk- amator Albrecht Durer. Macierz taka nazywana jest magicznym kwadratem i ma ciekawe własności. WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowanieWykresy Programowanie

6 Macierz można stworzyć na kilka sposobów: ● Wpisanie listy elementów, ● Załadowanie macierzy z pliku, ● Wygenerowanie macierzazazsssez wbudowane funkcje, ● Stworzenie macierzy z użyciem włanych funkcji z M-plików. Zaczniemy od podania macierzy podając listę elementów. Musimy pamiętać, że: ● Oddzielamy elementy w wierszu spacjami lub przecinkami, ● Używamy średnika do oznaczenia końca wiersza, ● Na początku i końcu każdej listy elementów stawiamy kwadratowe nawiasy, [ ]. Wprowadźmy macierz Durera wpisując w oknie poleceń: A=[ ; ; ; ] W tym momencie Matlab autamatycznie zapamiętuje tę macierz w 'workspace'. Możemy sie do niej odwoływać po prostu pisząc A. Teraz, kiedy mamy już swoją macierz zapamiętaną sprawdźmy co jest w niej interesującego. Dlaczego jest magiczna? WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowanieWykresy Programowanie

7 Zauważmy, że suma liczb w każdej kolumnie i każdym wierszu jest taka sama. Wprowadźmy: sum(A) Matlab odpowie nam: ans = Kiedy nie podamy zmiennej wyjściowej Matlab używa zmiennej ans (skrót od answer), w której przechowuje wynik. Otrzymaliśmy wektor sum poszczególnych kolumn macierzy A. Jak zsumować wiersze? Matlab preferuje pracę na kolumnach, więc najłatwiej macierz transponować i dokonać poprzedniej operacji: sum(A') Aby transponować macierz piszemy za nią apostrof. Dla czytalniejszego zapisu napiszmy: sum(A')' WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowanieWykresy Programowanie

8 Jeśli chcemy zsumować liczby z przekątnej używamy funkji diag: diag(A), która wybiera z macierzy interesujące nas elementy, które potem sumujemy: sum(diag(A)) Druga przekątna jest mniej istotna, więc nie ma specjalnej funcji do jej obsługi. Ale możemy obrócić macierz funkcją fliplr a następnie wybrać elementy przekątnej i je zsumować: sum(diag(fliplr(A))) WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowanieWykresy Programowanie

9 Element w wierszu i i kolumnie j jest oznaczany przez A(i,j). Np. w naszym kwadracie A(4,2) wynosi 18. Podsuwa nam to pewien sposób na zsumowanie liczb z drugiej przekątnej: A(1,4)+A(2,3)+A(3,2)+A(4,1), lecz nie jest to “ładny” sposób. Możemy odwoływać się do macierzy poprzez jedną współrzędną, wtedy macierz jest traktowana jako jedna długa kolumna, np. w magicznej macierzy A pisząc A(8) otrzymamy liczbę 15, czyli A(4,2). Jeśli odwołamy się do elementu spoza macierzy Matlab zwróci błąd: Index exceeds matrix dimensions. Z drugiej strony, jeśli chcemy dodać element poza zasięg naszej macierzy Matlab zwiększy jej rozmiar. WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowanieWykresy Programowanie

10 Operator dwukropka Jest to bardzo ważny operator w Matlabie, występuje w wielu formach. Zacznijmy od : 1:10 jest to wektor liczb od 1 do 10. Aby zmienić skok pomiędzy kolejnymi elementami, możemy zdefiniować przyrost: 100:-7:50 Możemy odwoływać się do części macierzy pisząc A(1:k,j), co oznacza k pierwszych elementów j-tej kolumny. Sam dwukropek oznacza wszystkie elementy wiersza lub kolumny, a “end” odnosi się do ostatniego wiersza lub kolumny. Zsumujemy elementy ostatniej kolumny jeśli wprowadzimy: sum(A(:,end)) Zauważmy, że w naszej macierzy występują wszystkie liczby od 1 do 16, więc ich suma podzielona przez 4 powinna dać 34: sum(1:16)/4 Jeśli chcemy zmienić kolejność wierszy lub kolumn wpiszmy: A=(:,[ ]) co spowoduje wyświetlenie macierzy A ze zmienioną kolejnością kolumn. WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowanieWykresy Programowanie

11 Matlab udostępnia nam wiele przydatnych funkcji matematycznych, np: abs, sqrt, exp, sin, itp. Aby poznać więcej podstawowych funkcji wpiszmy: help elfun Aby zagłębić się w bardziej zaawansowane rzeczy sprawdźmy: help specfun help elmat WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowanieWykresy Programowanie

12 Wykresy Podstawową funkcją służącą do rysowania jest plot. Użyta na wektorze wyświetla wykres, na którym argumentami są indeksy a wartościami elementy wektora. Gdy użyjemy jej na parze wektorów argumentami będą elementy pierwszego wektora a wartościami odpowiadające im elementy drugiego wektora. Możemy rysować kilka wykresów używając tylko raz funkcji plot, poprzez wpisania po przecinku par argumentów i wartości. Matlab sam dobierze odpowiednie kolory dla poszczególnych wykresów. Aby opisać wykres używamy poniższych funkcji z argumentami w pojedynczych cudzysłowach: ● xlabel() - opisuje oś x. Analogicznie działa funkcja ylabel, ● title() - opisuje wykres, umieszczając nad wykresem podany ciąg, ● legend() - wyświetla podany argument do danego koloru wykresu. ● text() - umieszcza podany jako 3. argument ciąg znaków w miejscu podanym jako pierwszy i drugi argument. WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzy Programowanie

13 Do funkcji plot możemy dodać jako ostatni argument ciąg znaków wybrany z poniższych zbiorów (po jednym znaku z każdego zbioru): ● 'c', 'm', 'y', 'r', 'g', 'b', 'w', 'k' – kolor wykresu, ● '-', '--', ':', '-.' – rodzaj linii, ● '+', 'o', '*', 'x', 's', 'd', '^', 'v', '>', '<', 'p', 'h' – oznaczenie punktów z macierzy. Jeśli chcemy oznaczyć nie wszystkie punkty, które podajemy jako argumenty plot możemy stworzyć nową macierz z wybranymi punktami od oznaczenia: x1=0:pi/100:2*pi; x2=0:pi/10:2*pi; plot(x1,sin(x1),'r:',x2,sin(x2),'r+') Jeśli chcemy na jednym wykresie umieścić kilka wyników funkcji graficznych możemy użyć polecenia 'hold on' (aby od nowa zapełniać okienko 'hold off'). Możemy również tworzyć wiele okienek za pomocą polecenia figure, aktualnie używanym będzie ostatnio używane okienko (możemy to zmienić pisząc figure(n)) WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzy Programowanie

14 Matlab umożliwia nam podzielenie okienka wyjścia na kilka wykresów poprzez funkcję subplot(m,n,p), gdzie m,n to podział okienka na m wierszy i n kolumn a p to aktualne wybrane pole (numeracja wierszowa). Zadanie: w jednym okienku umieścić cztery wykresy (sin,cos,tg,ctg) i opisać je. Wskazówka: zobaczyć w pomocy działanie polecenia axis. WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzy Programowanie

15 Wykresy 3D Do tworzenia tego typu wykresów służą funkcje mesh i surf. Pierwsza z nich wyświetla tylko punkty przez nas podane oraz linie je łączące a surf zapełnia przestrzeń pomiędzy. W Matlabie powierzchnia traktowana jest jako zbiór wartości nad siatką dwuwymiarową. Aby narysować funkcję f dwóch zmiennych należy wpierw wygenerować macierze X i Y składające sie z powtarzających się wierszy (X) i kolumn (Y), które definiują dziedzinę funkcji. Następnie, za pomocą f, tworzymy macierz Z. Do generowania macierzy X i Y pomocna jest funkcja meshgrid, która przyjmuje dwa wektory jako argumenty. Pierwszy z nich umieszcza w wierszach X a drugi w kolumnach Y. Wywołanie jej z jednym argumentem x jest równoznaczne z meshgrid(x,x) WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzy Programowanie

16 Elementy programowania Kontrola wykonywania programu: ● if, switch ● for,while, continue, break WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy

17 Polecenie if sprawdza warunek logiczny podany jako argument i wykonuje grupę poleceń gdy warunek jest prawdziwy. Opcjonalnie możemy używać elseif oraz else. Słowo kluczowe end kończy blok if (nie ma nawiasów). Warto zauważyć że operator '==' nie porównuje macierzy, tylko zwraca macierz z zerami w miejscach gdzie elementy są różne i jedynkami gdy są równe. Aby porównać macierze używamy funkcji isequal(A,B). Ponadto pomocne są funkcje isempty,all,any. Switch oblicza podane wyrażenie i sprawdza, która z podanych wartości case pasuje (otherwise odpowiada default w C). Na końcu musimy użyć end. Wykonuje się tylko pierwszy zbiór poleceń po dopasowanym case, więc nie występuje break. Przykład: switch rem(n,3) case 0 'podzielna przez 3' case 1 'reszta 1' case 2 'reszta 2' end WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy

18 Pętla for powtarza grupę poleceń stała, wcześniej zdefiniowaną ilość razy. Kończymy grupę poleceń słowem kluczowym end. W odróżnieniu od for pętla while powtarza wykonanie niezdefiniowaną ilość razy, zależnie od warunku. A=[1 2;3 4] for i=1:4 A(i)=A(i)+i; end A Continue przeskakuje do następnego wykonania pętli for lub while nie wykonując poleceń znajdujących się pod nim. Break wychodzi z danej pętli, jeśli występuje zagnieżdżenie break wychodzi z najbardziej zagnieżdżonej pętli. WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy

19 Inne typy danych 1. Tablice wielowymiarowe – możemy je tworzyć za pomocą funkcji zeros,ones, rand, randn podając odpowiednią ilość argumentów. Zadanie: napisać program który wygeneruje wszystkie magiczne tablice o rozmiarze 4 i zapisze je w jednej tablicy wielowymiarowej. 2. Cell Arrays – są to wielowymiarowe tablice, których elementami są kopie innych tablic. Można je traktowac jako tablice macierzy (dopuszczalny różny rozmiar tablic). Korzystamy z nich poprzez nawiasy {,}, np. A{1} to pierwszy element z tablicy A. Pustą tablicę tworzymy za pomocą polecenia cell(i,j), gdzie i to ilość wierszy, j-kolumn. Przykład: M=cell(8,1); for i=1:8 M{i}=magic(i); end M 3. Znaki i ciągi znaków- wpisujemy w pojedynczych cudzysłowach Jest to zapisywane w Matlabie jako macierz znaków WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy

20 WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy 4. Struktury – są to wielowymiarowe tablice, możemy odwoływać się do pól poprzez identyfikatory tekstowe. np. S.imie='Jan Kowalski' S.pkt=67 S.ocena='dobry' tworzy strukturę-skalar z trzema polami. Możemy dodawać elementy poprzez: S(2)=struct('imie','Anna Szymanska','pkt','45','ocena','ndst'). Napisanie S.imie jest równoznaczne z 'S(1).imie, S(2).imie' (notacja przecinkowa), więc wpisanie [S.imie] tworzy wektor z imionami.

21 WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy Pliki, które zawierają kod w języku MATLAB nazywamy M-plikami. Tworzymy je za pomocą dowolnego edytora tekstu, następnie używamy jak innych funkcji czy poleceń. Są dwa typy m-plików: ● Skrypty – nie mają argumentów wejściowych ani wyjściowych. Pracują z danymi z 'workspace', ● Funkcje – mogą mieć argumenty wejściowe i wyjściowe. Gdy wywołujemy funkcje Matlab przeszukuje podane ścieżki w poszukiwaniu danego pliku. Aby zobaczyć zawartość M-pliku należy użyć: type mojafunkcja Podczas uruchamiania skryptu wykonywane są po prostu kolejno linie w nim napisane. Skrypty mogą tworzyć wykresy.

22 WprowadzenieWprowadzenie Podstawy macierzy Wykresy ProgramowaniePodstawy macierzyWykresy Pierwsza linia M-pliku z funkcją zaczyna się słowem kluczowym 'function'. W tej linii jest nazwa funkcji oraz kolejność argumentów (przykład 'type rank'). Kolejne linie to linie komentarza dla pomocy, aż do linii pustej lub wykonywalnej. Zmienne wykorzystywane w funkcji oraz argumenty to zmienne lokalne! Zmienne globalne możemy definiować poprzez dodanie przed słowa kluczowego 'global'. Funkcja eval() operuje na zmiennych tekstowych. Oblicza podane wyrażenie lub wykonuje polecenie zawarte w argumencie.


Pobierz ppt "Wprowadzenie do Matlaba Radosław Głowiński"

Podobne prezentacje


Reklamy Google