1 Wprowadzenie do MATLABADr inż. Mirosław Kwiesielewicz Wydział Elektrotechniki i Automatyki Politechnika Gdańska
2 Funkcje środowiska MATLAB/SIMULINKMATLAB - ang. matrix laboratory Środowisko do obliczeń numerycznych analiza numeryczna operacje na macierzach przetwarzanie sygnałów prezentacja graficzna wyników przyborniki (toolbox) z procedurami i funkcjami specyficznymi dla danej dziedziny nauki M. Kwiesielewicz. Wprowadzenie do MATLABA
3 Podstawowe informacje o pakiecie MATLABPierwotnie napisany w FORTRANIE Obecny MATLAB napisany w C przez firmę MathWorks Możliwość tworzenia własnych procedur i funkcji Możliwość dołączania procedur w języku C lub FORTRAN M. Kwiesielewicz. Wprowadzenie do MATLABA
4 ŚRODOWISKO MATLAB/SIMULINKModel Predictive Control -Analysis and Synthesis NAG Foundation Neural Network Optimization Partial Differential Equations QFT Control Design Robust Control Signal Processing Spline Statistics Symbolic Math System Identification MATLAB Extensions MATLAB Compiler MATLAB C Math Library Tollboxes Control System Communication Financial Frequency Domain System Identification Fuzzy Logic High-Order Spectral Analysis Image Processing LMI Control MATLAB SIMULINK SIMULINK Extensions SIMULINK Accelerator Real-Time Workshop Bloksets M. Kwiesielewicz. Wprowadzenie do MATLABA
5 Przyborniki 1 The Signal Processing Toolbox - przetwarzanie sygnałów; projektowanie i analiza filtrów cyfrowych; estymacja widma (analiza FFT) The Control System Toolbox - systemy sterowania i regulacji; odpowiedzi czasowe i częstotliwościowe układów; przekształcenie Laplace’a i Fouriera Simulink - symulacja systemów dynamicznych M. Kwiesielewicz. Wprowadzenie do MATLABA
6 Przyborniki 2 The System Identification Toolbox - identyfikacja; estymacja modeli The Optimization Toolbox - zagadnienia optymalizacyjne z ograniczeniami The Neural Network Toolbox - sieci neuronowe The Robust-Control Toolbox - układy sterowania krzepkiego M. Kwiesielewicz. Wprowadzenie do MATLABA
7 Przyborniki 3 The Fuzzy Logic Toolbox - logika rozmytaThe Genetic Algorithms Toolbox - optymalizacja z wykorzystaniem algorytmów genetycznych; nie jest to produkt firmy Mathworks The Model Predictive Control Toolbox sterowanie predykcyjne Nowości: M. Kwiesielewicz. Wprowadzenie do MATLABA
8 Ścieżka dostępu MATLAB wykorzystuje definicję ścieżki dostępu w celu znalezienia M-plików M-pliki znajdują się w odpowiednio zorganizowanych katalogach i podkatalogach Jeśli wprowadzimy pewną nazwę nazwa w linii MATLABA to interpretator linii poleceń wykona następujące czynności Sprawdzi, czy nazwa jest zmienną Sprawdzi, czy nazwa jest funkcją wbudowaną Poszuka pliku nazwa.m w bieżącym katalogu Przejrzy katalogi, zgodnie z stawioną ścieżką dostępu M. Kwiesielewicz. Wprowadzenie do MATLABA
9 Zmiana ścieżki dostępuMożna wyświetlić oraz zmienić ścieżkę dostępu na czas bieżącej sesji wykorzystując funkcje path, addpath i rmpath polecenie path zwraca bieżące ustawienia path(s), gdzie s łańcuchem ustawia ścieżkę zgodnie z s addpath /home/lib oraz (path, ‘/home/lib’) dodają nową ścieżkę do istniejącej rmpath /home/lib usuwa tą ścieżkę M. Kwiesielewicz. Wprowadzenie do MATLABA
10 Plik startowy - startup.mW trakcie startu MATLAB automatycznie wykonuje plik matlabrc.m oraz startup.m o ile istnieje Plik startup.m pozwala użytkownikowi na dokonanie własnych ustawień Przykładowo w pliku startup.m można umieścić polecenie addpath /home/me/mytools Plik ten na pececie należy umieścić w katalogu .../toolbox/local M. Kwiesielewicz. Wprowadzenie do MATLABA
11 Katalog bieżący Do pracy z plikami *.M oraz *.MAT przyjęty jest bieżący katalog Na pececie jest to katalog ustawiony w skrócie do wywołania MATLABA Zmiany bieżącego katalogu na pececie można dokonać za pomocą polecenia cd Wyświetlenie plików z danego katalogu dokonuje się poleceniem what M. Kwiesielewicz. Wprowadzenie do MATLABA
12 Przeglądarka ścieżek dostępuMenu>File>PathBrowser M. Kwiesielewicz. Wprowadzenie do MATLABA
13 System podpowiedzi Polecenie help help magic Okno helpPolecenie lookfor lookfor inverse Dokumentacja na krążku lub sieci lokalnej Dokumentacja książkowa Strony WWW firmy Mathworks M. Kwiesielewicz. Wprowadzenie do MATLABA
14 Typy i nazwy zmiennych MATLAB operuje tylko na jednym typie danych - na macierzach Wektory i skalary są szczególnymi przypadkami macierzy, tzn. posiadającymi jeden wiersz lub/i jedną kolumnę Nazwy zmiennych rozpoczynają się od litery, a następnie może wystąpić dowolna kombinacja liter, cyfr i znaków podkreślenia Pamiętanych jest 19 pierwszych znaków M. Kwiesielewicz. Wprowadzenie do MATLABA
15 Nazwy i definicje zmiennychMATLAB rozróżnia duże i małe litery w nazwach zmiennych oraz poleceń polecenia standardowe należy pisać małymi literami do nazywania własnych programów i zmiennych można używać małych i dużych liter Definiowanie typu i wielkości zmiennej odbywa się automatycznie M. Kwiesielewicz. Wprowadzenie do MATLABA
16 Metody wprowadzania danychkonsola generowane przez wewnętrzne lub zewnętrzne funkcje lub procedury zbiory dyskowe M. Kwiesielewicz. Wprowadzenie do MATLABA
17 Wprowadzanie danych - skalar M. Kwiesielewicz. Wprowadzenie do MATLABA
18 Wprowadzanie danych - wektor M. Kwiesielewicz. Wprowadzenie do MATLABA
19 Wprowadzanie danych - macierz M. Kwiesielewicz. Wprowadzenie do MATLABA
20 Wprowadzanie danych - macierz M. Kwiesielewicz. Wprowadzenie do MATLABA
21 Wprowadzanie danych - macierz znakowaUwaga: macierz abc jest wymiaru 3x3 M. Kwiesielewicz. Wprowadzenie do MATLABA
22 Wprowadzanie danych - c.d.Szybkie tworzenie wektorów M. Kwiesielewicz. Wprowadzenie do MATLABA
23 Wprowadzanie danych - c.d.Szybkie tworzenie wektorów M. Kwiesielewicz. Wprowadzenie do MATLABA
24 Wprowadzanie danych - c.d.Szybkie tworzenie macierzy M. Kwiesielewicz. Wprowadzenie do MATLABA
25 Wprowadzanie danych - c.d.Obszerne polecenia M. Kwiesielewicz. Wprowadzenie do MATLABA
26 Wprowadzanie danych - c.d.Wektory i macierze zespolone M. Kwiesielewicz. Wprowadzenie do MATLABA
27 Wprowadzanie danych - funkcje specjalnepi - generuje liczbę pi Inf - generuje symbol nieskończony „1/0” NaN - generuje symbol nieoznaczony „Inf/Inf” czy „0/0” Uwagi. Pojawienie się podczas obliczeń symboli „Inf”, czy „NaN” nie powoduje błędu i wartości te mogą być użyte do dalszych obliczeń. Rezultatem obliczeń z argumentem „NaN” będzie również „NaN”. „Inf” i „NaN” nie są interpretowane jako komendy graficzne. M. Kwiesielewicz. Wprowadzenie do MATLABA
28 Wprowadzanie danych - c.d.Generacja macierzy za pomocą zewnętrznej procedury W katalogu roboczym tworzymy plik tekstowy genmatC.m zawierający: C = [1 0 2 0 3 0 4 0 5]; Wydanie polecenia >>genmatC spowoduje zdefiniowanie macierzy C. M. Kwiesielewicz. Wprowadzenie do MATLABA
29 Wprowadzanie danych Wczytywanie danych jako macierzW katalogu roboczym tworzymy plik tekstowy D.txt zawierający: 1 0 2 0 3 0 4 0 5 Wydanie polecenia >>load D.txt spowoduje zdefiniowanie macierzy D. M. Kwiesielewicz. Wprowadzenie do MATLABA
30 Wprowadzanie danych Wczytywanie danych jako macierz - uwagiW przedstawiony sposób można wczytywać tylko liczby rzeczywiste. Liczby zespolone trzeba przedstawić w postaci dwóch liczb rzeczywistych, a po wczytaniu odtworzyć z nich liczbę zespoloną. M. Kwiesielewicz. Wprowadzenie do MATLABA
31 Reprezentacja danych w pamięci i na ekranieDane liczbowe w pamięci MATLABA liczby rzeczywiste 8-bajtowe liczby zespolone 16-bajtowe znak 8-bajtów Macierze mogą być pamiętane w formie gęstej rzadkiej M. Kwiesielewicz. Wprowadzenie do MATLABA
32 Polecenia dotyczące pamięci 1 M. Kwiesielewicz. Wprowadzenie do MATLABA
33 Polecenia dotyczące pamięci 2 M. Kwiesielewicz. Wprowadzenie do MATLABA
34 Menu>File>ShowWorkSpacePrzeglądarka pamięci Menu>File>ShowWorkSpace M. Kwiesielewicz. Wprowadzenie do MATLABA
35 Wymiary pojedynczej macierzy M. Kwiesielewicz. Wprowadzenie do MATLABA
36 Formaty liczb na konsoliFormat można zmieniać poleceniem format >>format long e M. Kwiesielewicz. Wprowadzenie do MATLABA
37 Edycja linii komend M. Kwiesielewicz. Wprowadzenie do MATLABA
38 Zarządzanie przestrzenią roboczą 1Zwolnienie pamięci używanej przez zmienną >> v = [ ] Usunięcie zmiennej z pamięci >> clear v Po zwolnieniu pamięci jej konsolidacja >> pack Zachowanie przestrzeni roboczej w pliku >> save zapis do pliku matlab.mat M. Kwiesielewicz. Wprowadzenie do MATLABA
39 Zarządzanie przestrzenią roboczą 2Zapisanie wybranych zmiennych do pliku >> save abc A B C Zapisanie zmiennych w pliku tekstowym >> save abc.dat A -ascii Zmiana katalogu >> cd path Wyświetlenie plików związanych z MATLAem >> what path M. Kwiesielewicz. Wprowadzenie do MATLABA
40 Operacje na macierzach 1Transpozycja macierzy M. Kwiesielewicz. Wprowadzenie do MATLABA
41 Operacje na macierzach 2Transpozycja macierzy (wektora) M. Kwiesielewicz. Wprowadzenie do MATLABA
42 Operacje na macierzach 3Transpozycja macierzy zespolonej M. Kwiesielewicz. Wprowadzenie do MATLABA
43 Operacje na macierzach 4Dodawanie i odejmowanie macierzy (+/-) zdefiniowane dla dwóch macierzy tych samych wymiarów macierzy i skalara; skalar dodawany (odejmowany) do (od) każdego elementu macierzy Mnożenie macierzy (*) dwóch macierzy o odpowiednich wymiarach Macierzy przez skalar (mnożenie każdego elementu macierzy) M. Kwiesielewicz. Wprowadzenie do MATLABA
44 Operacje na macierzach 5Dzielenie macierzy X = A\B jest rozwiązaniem układu A*X = B X = B/A jest rozwiązaniem układu X*A = B Dzielenie macierzy przez skalar (dzielenie każdego elementu macierzy) Potęgowanie macierzy (^) Zdefiniowane dla macierzy kwadratowej w wykładnika skalarnego dla k całkowitego k-krotne mnożenie dla k rzeczywistego - rozkład na wartości własne M. Kwiesielewicz. Wprowadzenie do MATLABA
45 Indeksowanie macierzy i wektorówDo pojedynczych indeksów można się odwoływać poprzez podanie indeksów w nawiasach zwykłych Jeśli indeks jest wyrażeniem, to jest ono zaokrąglane do najbliższej liczby całkowitej M. Kwiesielewicz. Wprowadzenie do MATLABA
46 Indeksowanie macierzy 1Indeks może być również wektorem; elementy wektora wskazują wtedy wiersze i/lub kolumny, do których się odnosimy Jeśli u i v są wektorami to A(u,v) generuje macierz, w której wiersze są wymienione w wektorze u, a kolumny w wektorze v. M. Kwiesielewicz. Wprowadzenie do MATLABA
47 Indeksowanie macierzy 2 M. Kwiesielewicz. Wprowadzenie do MATLABA
48 Indeksowanie macierzy 3Do całej kolumny lub wiersza można odwołać się używając w miejsce indeksu dwukropka M. Kwiesielewicz. Wprowadzenie do MATLABA
49 Indeksowanie macierzy 4W celu usunięcia kolumn lub i wierszy - przyporządkowanie macierzy pustej M. Kwiesielewicz. Wprowadzenie do MATLABA
50 Indeksowanie macierzy 5Permutacja wierszy lub/i kolumn - kolejność wierszy 3, 2 1 M. Kwiesielewicz. Wprowadzenie do MATLABA
51 Indeksowanie macierzy 6Permutacja wierszy lub/i kolumn - odwrotna kolejność M. Kwiesielewicz. Wprowadzenie do MATLABA
52 Indeksowanie macierzy - użycie „:” M. Kwiesielewicz. Wprowadzenie do MATLABA
53 Ekstrakcja podmacierzy M. Kwiesielewicz. Wprowadzenie do MATLABA
54 Funkcje modyfikujące i tworzące macierzdiag - tworzenie macierzy diagonalnej lub ekstrakcja głównej przekątnej fliplr - ustrzanie odbicie macierzy w poziomie flipud - lustrzane odbicie macierzy w pionie reshape - zmiana rozmiarów macierzy rot90 - obrót macierzy o 90 stopni tril - ekstrakcja macierzy trójkątnej dolnej triu - ekstrakcja macierzy trójkątnej górnej M. Kwiesielewicz. Wprowadzenie do MATLABA
55 Tworzenie macierzy specjalnychcompan - macierz stowarzyszona gallery - kilka małych macierzy testowych hadamard - macierz Hadamarda hankel - macierz Hankela hilb - macierz Hilberta invhilb - macierz odwrotna Hilberta kron - iloczyn tensorowy Koroneckera magic - magiczny kwadrat toeplitz - macierz Toeplitza vander - macierz Vandermonde’a wilkinson - macierz testowa Wilkinsona dla zagadnień własnych M. Kwiesielewicz. Wprowadzenie do MATLABA
56 Tworzenie innych użytecznych macierzyzeros - macierz zer ones - macierz jedynek eye - macierz jednostkowa rand - macierz losowa o rozkładzie równomiernym randn - macierz losowa o rozkładzie normalnym linspace - liniowo zmienny wektor logspace - logarytmicznie zmienny wektor meshgrid - tablice X i Y dla trójwymiarowych wykresów M. Kwiesielewicz. Wprowadzenie do MATLABA
57 Funkcje macierzowe cond - wskaźnik uwarunkowania macierzyrcond - estymator odwrotności uwarunkowania macierzy norm - norma macierzy lub wektora det - wyznacznik trace - suma elementów diagonalnych rank - rząd macierzy null - jądro macierzy orth - obraz macierzy M. Kwiesielewicz. Wprowadzenie do MATLABA
58 Układy równań liniowychchol - dekompozycja Cholesky’ego lu - dekompozycja LU qr - dekompozycja QR nnls - nieujemne najmniejsze kwadraty lscov - najmniejsze kwadraty przy znanej kowariancji inv - odwrotność macierzy pinv - pseudoodwrotność macierzy M. Kwiesielewicz. Wprowadzenie do MATLABA
59 Wartości własne i szczególneeig - wartości własne i wektory własne poly - wielomian charakterystyczny polyeig - wielomianowy problem własny hess - macierz Hessenberga qz - uogólnione wartości własne schur - dekompozycja Shur’a svd - dekompozycja według wartości szczególnych M. Kwiesielewicz. Wprowadzenie do MATLABA
60 Operacje na tablicowe na macierzachDostępne są operacje .* ./ .\ .^, które wykonuje się element po elemencie macierzy Macierze muszą być tych samych wymiarów W przypadku mnożenia liczby przez macierz przed kropką powinna wystąpić spacja, np..: z = 2 .^[x y] Dodawanie i odejmowanie tablicowe są zdefiniowane tak samo jak dla macierzy. M. Kwiesielewicz. Wprowadzenie do MATLABA
61 Mnożenie tablicowe M. Kwiesielewicz. Wprowadzenie do MATLABA
62 Dzielnie tablicowe ./ (prawe)Ilorazy elementów z tablic c i a o tych samych indeksach M. Kwiesielewicz. Wprowadzenie do MATLABA
63 Dzielenie tablicowe .\ (lewe) M. Kwiesielewicz. Wprowadzenie do MATLABA
64 Mnożenie i dzielenie przez skalar M. Kwiesielewicz. Wprowadzenie do MATLABA
65 Potęgowanie tablicowe .^ M. Kwiesielewicz. Wprowadzenie do MATLABA
66 Potęgowanie tablicowe .^ (skalary) M. Kwiesielewicz. Wprowadzenie do MATLABA
67 Operacje relacyjne i logiczne< mniejszy < mniejszy bądź równy > większy >= większy bądź równy == równy ~= różny & logiczne and | logiczne or ~ logiczne not M. Kwiesielewicz. Wprowadzenie do MATLABA
68 Operacje relacyjne i logiczne - przykład M. Kwiesielewicz. Wprowadzenie do MATLABA
69 Operacje logiczne - przykład M. Kwiesielewicz. Wprowadzenie do MATLABA
70 Funkcje relacyjne i logiczneexist - prawda, jeśli funkcja albo zmienna jest zdefiniowana any - prawda, jeśli którykolwiek z elementów wektora jest prawdziwy all - prawda, jeśli wszystkie elementy wektora są prawdziwe find - znajduje indeksy elementów niezerowych isnan - prawda dla NaN isinf - prawda dla elementów nieskończonych finite - prawda dla elementów skończonych isempty - prawda dla macierzy pustej isreal - prawda dla macierzy rzeczywistej issparse - prawda dla macierzy rzadkiej isstr - prawda dla macierzy tekstowej isglobal - prawda dla zmiennej globalnej M. Kwiesielewicz. Wprowadzenie do MATLABA
71 Funkcje trygonometrycznecosh - cosinus hiperboliczny tanh - tangens hiperboliczny asinush - arcus sinus hiperboliczny acosh - arcus cosinus hiperboliczny atanh - arcus tangens hiperboliczny sin - sinus cos - cosinus tan - tangens asin - arcus sinus acos - arcus cosinus atan - arcus tangens atan2 - arcus tanges w czterech ćwiartkach sinh - sinus hiperboliczny M. Kwiesielewicz. Wprowadzenie do MATLABA
72 Funkcje elementarne ceil - zaokrąglenie w kierunku +round - zaokrąglenie do najbliższej całkowitej rem - reszta z dzielenia sign - znak exp - funkcja wykładnicza log - logarytm naturalny log10 - logarytm dziesiętny sqrt - pierwiastek kwadratowy abs - wartość bezwzględna angle - faza conj - sprzężenie imag - część urojona real - część rzeczywista fix - zaokrąglenie w kierunku 0 floor zaokrąglenie w kierunku - M. Kwiesielewicz. Wprowadzenie do MATLABA
73 Funkcje specjalne 1 besselj - funkcja Bessela pierwszego rodzajubessely - funkcja Bessela drugiego rodzaju besseli - zmodyfikowana funkcja Bessela pierwszego rodzaju besselk - zmodyfikowana funkcja Bessela drugiego rodzaju beta - funkcja beta ellipj - eliptyczne funkcje Jakobiego ellipke - pełna całka eliptyczna erf - funkcja błędu M. Kwiesielewicz. Wprowadzenie do MATLABA
74 Funkcje specjalne 2 gamma - funkcja Gammagcd - największy wspólny podzielnik lcm - najmniejsza wspólna wielokrotność rat - aproksymacja ułamkiem cart2sph - zmiana współrzędych z kartezjańskich na sferyczne cart2pool - zmiana współrzędych z kartezjańskich na polarne pool2cart - zmiana współrzędych z polarnych na kartezjańskie sph2cart - zmiana współrzędych ze sferycznych na kartezjańskie M. Kwiesielewicz. Wprowadzenie do MATLABA
75 Wielomiany roots - pierwiastki wielomianupoly - wielomian na podstawie pierwiastków polyval - wartość wielomianu polyvalm - wartość wielomianu w sensie macierzowym residue - rozkład na ułamki proste polyfit - dopasowanie wielomianu do danych polyder - pochodna wielomianu conv - mnożenie wielomianów deconv - dzielenie wielomianów M. Kwiesielewicz. Wprowadzenie do MATLABA
76 Operacje podstawowe i interpolacjamax - element maksymalny min - element minimalny mean - średnia median - mediana std - odchylenie standardowe sort - sortowanie w porządku rosnącym sum - suma prod - iloczyn interp wymiarowa interpolacja interp wymiarowa interpolacja interpft - interpolacja z wykorzystaniem FFT spline - interpolacja przy pomocy splajnów M. Kwiesielewicz. Wprowadzenie do MATLABA
77 Filtrowanie sygnałów i transformata Fourierafilter - 1-wymiarowy filtr cyfrowy filter2 - 2-wymiarowy filtr cyfrowy fft - szybka transformata Fouriera fft2 - 2-wymiarowa szybka transformata Fouriera ifft - odwrotna szybka transformata Fouriera ifft2 - odwrotna 2-wymiarowa szybka transformata Fouriera M. Kwiesielewicz. Wprowadzenie do MATLABA
78 Operacje na funkcjach fmin - minimalizacja funkcji jednej zmiennejfmins - minimalizacja funkcji wielu zmiennych fzero - miejsca zerowe funkcji jednej zmiennej M. Kwiesielewicz. Wprowadzenie do MATLABA