MatLab część I 1
Zanim zaczniemy GNU Octave 2
Zanim zaczniemy GNU Octave 3
Zanim zaczniemy GNU Octave 4
Środowisko MatLab-a MatLab ang. MATrix LABoratory Obliczenia numeryczne i symboliczne operacje na macierzach graficzna prezentacja danych (wykresy) metody numeryczne operacje symboliczne przetwarzanie sygnałów przyborniki (toolboxes) 5
Elementy okna MatLab-a katalog bieżący Current Directory okno poleceń Command Window przestrzeń robocza Workspace katalog bieżący Current Directory historia poleceń Command History 6
Elementy okna MatLab-a 7
Elementy okna MatLab-a 8
Elementy okna MatLab-a 9
Elementy okna MatLab-a 10
Podpowiedzi w oknie poleceń Polecenie help wyświetla skrypt pomocy W przypadku konkretnego polecenia piszemy: help nazwa_polecenia. Polecenie to wyświetla całą zawartość nagłówka skryptu (m-pliku) definiującego dane polecenie Polecenie lookfor słowo_kluczowe szuka podanego słowa w pierszej linii nagłówka (linii H1) wszystkich dostępnych m-plików Zachęcam do używania polecenia help! Zazwyczaj w nagłówkach m-plików dosyć obszernie opisane są składnie zdefiniowanych w nich funkcji 11
Podpowiedzi w oknie poleceń 12
Format liczb w oknie poleceń Standardowo liczby są wyświetlane w formacie krótkim Format zmieniamy poleceniem format nazwa_formatu Formaty: short krótki 0.0023 short e krótki zmiennoprzecinkowy 2.3421e-003 long długi 0.00234213145623 (14 znaków po znaku dziesiętnym) long e długi zmiennoprzecinkowy 2.34213145623134e-003 bank walutowy 1.27 (dwa miejsca po przecinku) rat ułamkowy Więcej: help format 13
Jak działa MatLab? MatLab działa jak interpreter języka linii poleceń Jeśli w linii poleceń wpiszemy pewien ciąg znaków, np. bleble, to interpreter wykona następujące działania: Sprawdzi, czy bleble jest nazwą zmiennej Sprawdzi, czy bleble jest nazwą wbudowanej funkcji Poszuka pliku (skryptu) bleble.m w bieżącym katalogu Poszuka pliku (skryptu) bleble.m w katalogach podanych ścieżkami dostępu M-pliki (pliki o rozszerzeniu *.m) zawierają skrypty (zbiory poleceń) lub definicje funkcji 14
Katalog bieżący Ustawiony jest w skrócie wywołania MatLab-a, w okienku Rozpocznij w Najczęściej ma on nazwę work katalog bieżący 15
Katalog bieżący c.d. Jeśli nie podamy ścieżki dostępu, to tam są zapisywane i poszukiwane m- i mat-pliki (pliki *.m oraz *.mat) Zmianę bieżącego katalogu wykonujemy poleceniem cd jakaś_ścieżka_dostępu Samo polecenie cd podaje ścieżkę dostępu aktualnego katalogu bieżącego Zawartość katalogu bieżącego (m- i mat-pliki) wyświetla się poleceniem what 16
Ścieżki dostępu Aktualne ustawienie ścieżek dostępu uzyskuje się za pomocą polecenia path Nową ścieżkę dodaje się poleceniem addpath ścieżka_dostępu oraz w postaci funkcyjnej: (path, 'ścieżka_dostępu') w drugim przypadku ścieżka dostępu podana w apostrofach! Ścieżkę usuwa się poleceniem rmpath ścieżka_dostępu. Postać funkcyjna analogiczna jak w przypadku addpath 17
Ścieżki dostępu c.d. Można też posłużyć się przeglądarką: Menu>File>SetPath 18
Przestrzeń robocza Jest to obraz części pamięci operacyjnej obsługującej program MatLab Zawiera wyszczególnienie wszystkich zmiennych i ich opis Zmienną np. a usuwamy z pamięci poleceniem clear a. Całą pamięć czyścimy poleceniem clear Przestrzeń roboczą konsoliduje polecenie pack Polecenie who wypisuje w oknie poleceń zawartość przestrzeni roboczej (tylko nazwy zmiennych); polecenie whos podaje również rozmiary zmiennych, liczbę zajmowanych przez nie bajtów i ich klasę 19
Przestrzeń robocza zapis do pliku Polecenie save zapisuje przestrzeń roboczą do pliku binarnego matlab.mat w bieżącym katalogu. Podczas zamykania sesji roboczej zapis następuje automatycznie Pojedyncze zmienne (np. a b) można zapisać poleceniem save a b Polecenie save nazwa_pliku zapisuje przestrzeń roboczą do pliku o podanej nazwie. Rozszerzenie *.mat dodawane jest automatycznie. W nazwie można podać jeszcze dodatkowo ścieżkę dostępu, inną niż katalogu bieżącego Zapis do pliku tekstowego wymuszamy opcją -ASCII Więcej na ten temat: help save 20
Przestrzeń robocza odczyt z pliku Podczas otwarcia sesji roboczej następuje automatyczny odczyt pliku matlab.mat z bieżącego katalogu. Odczyt ten można wymusić poleceniem load Pojedyncze zmienne odczytujemy poleceniem load a b Inne pliki odczytujemy poleceniem load nazwa_pliku. W nazwie pliku możemy podać dodatkowo ścieżkę dostępu. W przypadku, gdy rozszerzenie jest inne niż *.mat plik traktowany jest jako plik ASCII (tekstowy) Można wymusić opcję odczytu parametrami -MAT lub -ASCII, niezależnie od rozszerzenia Więcej na ten temat: help load 21
Inne typy plików danych Dane separowane przecinkiem (ang.: Comma Separated Values CSV). Odczyt: csvread. Zapis: csvwrite. Więcej: help itd. Dane separowane znakiem (ang.: delimiter). Odczyt: dlmread. Zapis: dlmwrite. Więcej: help itd. Dane ze skoroszytu Excela. Odczyt: xlsread. Zapis: xlswrite. Więcej: help itd. Pliki tekstowe ogólnego formatu dowolny plik tekstowy. Tylko odczyt: textscan. Jest to najbardziej elastyczny format odczytu danych z pliku, więc więcej o nim na następnym wykładzie! UWAGA!: tak nie da się wczytać liczb zespolonych trzeba wczytać osobno Re i Im i z nich skonstruować liczby zespolone 22
Zmienne i ich nazwy Nazwy zmiennych tworzy się z kombinacji liter i cyfr oraz znaku podkreślenia, zaczynając od litery. Rozróżniane są małe i wielkie litery! Tzn. Zmienna A to nie to samo, co zmienna a. Typ zmiennej dobierany jest automatycznie do wyniku działania lub przypisania wartości. Jeśli nie podamy nazwy zmiennej, do której zwracany ma być wynik działania, to przechowany będzie w zmiennej standardowej o nazwie ans. 23
Typy zmiennych Postawowym typem zmiennych są macierze. Formalnie macierzami są też wektory (macierz jednowymiarowa: tylko 1 wiersz lub tylko 1 kolumna) i skalary (pojedyncza liczba czyli macierz zerowymiarowa: 1 wiersz 1 kolumna). Można tworzyć macierze więcej niż dwuwymiarowe poprzez np. tworzenie macierzy (wektorów), których elementami są macierze (wektory). Przydatne dla tworzenia takich struktur jest polecenie cat, np.: a=cat(3,[1,2,3;4,5,6],[7,8,9;10,11,12]) Parametr 3 oznacza, że łączenie macierzy odbywa się wzdłuż trzeciego wymiaru w rezultacie z dwu macierzy 2 3 otrzymujemy macierz 2 3 2 24
Pozostałe typy zmiennych Nowsze wersje MatLaba pozwalają na tworzenie bogatszych struktur danych, niż tylko macierze. Pozostałe typy zmiennych: wektory komórkowe (cell arrays) wektory, których komórki mogą zawierać dane różnego typu; więcej na ten temat: help cell struktury obiekty podobne do struktur języka C lub rekordów języka Pascal, czyli obiekty przechowujące kilka wartości (mogą być różnych typów) w polach, do których odwołujemy się poprzez ich nazwy obiekty struktury zawierające zarówno dane jak i funkcje (metody) pozwala to na projektowanie obiektowe w MatLabie 25
Standardowe stałe W MatLabie zdefiniowanych jest kilka funkcji zwracających wartości, które możemy traktować jak stałe: pi wartość liczby niewymiernej π eps wartość najmniejszej liczby, która dodana do 1 da wartość >1 (u nas: 2.2204e-016) realmax wartość największej dostępnej liczby zmiennoprzecinkowej (u nas: 1.7977e+308) realmin wartość najmniejszej dostępnej liczby zmiennoprzecinkowej (u nas: 2.2251e-308) Inf wartość symboliczna nieskończoności (jak np. wynik dzielenia przez 0 nie dostajemy błędu!) NaN wartość nieokreślona (jak np. wynik dzielenia 0 przez 0 nie dostajemy błędu!) i oraz j symbole urojone (wynik działania: sqrt(-1) ) 26
Standardowe stałe 27