Wprowadzenie do MATLABA Dr inż. Mirosław Kwiesielewicz Wydział Elektrotechniki i Automatyki Politechnika Gdańska
Funkcje środowiska MATLAB/SIMULINK MATLAB - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Podstawowe informacje o pakiecie MATLAB Pierwotnie 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
ŚRODOWISKO MATLAB/SIMULINK Model 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Przyborniki 3 The Fuzzy Logic Toolbox - logika rozmyta The Genetic Algorithms Toolbox - optymalizacja z wykorzystaniem algorytmów genetycznych; nie jest to produkt firmy Mathworks The Model Predictive Control Toolbox sterowanie predykcyjne Nowości: http://www.mathworks.com/ 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Ś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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Zmiana ścieżki dostępu Moż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ę 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Plik startowy - startup.m W 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Przeglądarka ścieżek dostępu Menu>File>PathBrowser 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
System podpowiedzi Polecenie help help magic Okno help Polecenie lookfor lookfor inverse Dokumentacja na krążku lub sieci lokalnej Dokumentacja książkowa Strony WWW firmy Mathworks 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Nazwy i definicje zmiennych MATLAB 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Metody wprowadzania danych konsola generowane przez wewnętrzne lub zewnętrzne funkcje lub procedury zbiory dyskowe 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - skalar 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - wektor 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - macierz 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - macierz 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - macierz znakowa Uwaga: macierz abc jest wymiaru 3x3 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - c.d. Szybkie tworzenie wektorów 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - c.d. Szybkie tworzenie wektorów 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - c.d. Szybkie tworzenie macierzy 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - c.d. Obszerne polecenia 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - c.d. Wektory i macierze zespolone 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych - funkcje specjalne pi - 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. 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
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. 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych Wczytywanie danych jako macierz W 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. 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wprowadzanie danych Wczytywanie danych jako macierz - uwagi W 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ą. 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Reprezentacja danych w pamięci i na ekranie Dane 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Polecenia dotyczące pamięci 1 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Polecenia dotyczące pamięci 2 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Menu>File>ShowWorkSpace Przeglądarka pamięci Menu>File>ShowWorkSpace 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wymiary pojedynczej macierzy 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Formaty liczb na konsoli Format można zmieniać poleceniem format >>format long e 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Edycja linii komend 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Zarządzanie przestrzenią roboczą 1 Zwolnienie 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Zarządzanie przestrzenią roboczą 2 Zapisanie 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje na macierzach 1 Transpozycja macierzy 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje na macierzach 2 Transpozycja macierzy (wektora) 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje na macierzach 3 Transpozycja macierzy zespolonej 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje na macierzach 4 Dodawanie 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) 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje na macierzach 5 Dzielenie 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Indeksowanie macierzy i wektorów Do 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Indeksowanie macierzy 1 Indeks 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. 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Indeksowanie macierzy 2 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Indeksowanie macierzy 3 Do całej kolumny lub wiersza można odwołać się używając w miejsce indeksu dwukropka 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Indeksowanie macierzy 4 W celu usunięcia kolumn lub i wierszy - przyporządkowanie macierzy pustej 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Indeksowanie macierzy 5 Permutacja wierszy lub/i kolumn - kolejność wierszy 3, 2 1 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Indeksowanie macierzy 6 Permutacja wierszy lub/i kolumn - odwrotna kolejność 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Indeksowanie macierzy - użycie „:” 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Ekstrakcja podmacierzy 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Funkcje modyfikujące i tworzące macierz diag - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Tworzenie macierzy specjalnych compan - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Tworzenie innych użytecznych macierzy zeros - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Funkcje macierzowe cond - wskaźnik uwarunkowania macierzy rcond - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Układy równań liniowych chol - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wartości własne i szczególne eig - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje na tablicowe na macierzach Dostę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. 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Mnożenie tablicowe 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Dzielnie tablicowe ./ (prawe) Ilorazy elementów z tablic c i a o tych samych indeksach 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Dzielenie tablicowe .\ (lewe) 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Mnożenie i dzielenie przez skalar 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Potęgowanie tablicowe .^ 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Potęgowanie tablicowe .^ (skalary) 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje relacyjne i logiczne - przykład 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje logiczne - przykład 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Funkcje relacyjne i logiczne exist - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Funkcje trygonometryczne cosh - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
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 - 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Funkcje specjalne 1 besselj - funkcja Bessela pierwszego rodzaju bessely - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Funkcje specjalne 2 gamma - funkcja Gamma gcd - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Wielomiany roots - pierwiastki wielomianu poly - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje podstawowe i interpolacja max - element maksymalny min - element minimalny mean - średnia median - mediana std - odchylenie standardowe sort - sortowanie w porządku rosnącym sum - suma prod - iloczyn interp1 - 1-wymiarowa interpolacja interp2 - 2-wymiarowa interpolacja interpft - interpolacja z wykorzystaniem FFT spline - interpolacja przy pomocy splajnów 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Filtrowanie sygnałów i transformata Fouriera filter - 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 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA
Operacje na funkcjach fmin - minimalizacja funkcji jednej zmiennej fmins - minimalizacja funkcji wielu zmiennych fzero - miejsca zerowe funkcji jednej zmiennej 2017-04-17 M. Kwiesielewicz. Wprowadzenie do MATLABA