Wikipedysta:BartekChom/brudnopis
Sprawozdanie – wprowadzenie do Matlaba
Wstęp
MATLAB to program, który służy do wykonywania obliczeń na macierzach, jak wskazuje nazwa (MATrix LABoratory). Pozwala też na pisanie programów, np. w formacie m i rysowanie wykresów. Działa głównie w trybie wiersza polecenia.
MATLAB – program komputerowy będący interaktywnym środowiskiem do wykonywania obliczeń naukowych i inżynierskich, oraz do tworzenia symulacji komputerowych. Nazwa programu pochodzi od angielskich słów MATrix LABoratory, gdyż początkowo program ten był przeznaczony do numerycznych obliczeń macierzowych. Obecnie program ten potrafi znacznie więcej, cechuje go duża liczba funkcji bibliotecznych oraz duże możliwości rozbudowy przez użytkownika za pomocą pisania własnych funkcji. Posiada on swój język programowania, co umożliwia pisanie w pełni funkcjonalnych programów działających w środowisku Matlaba. W zakresie grafiki Matlab umożliwia rysowanie dwu i trójwymiarowych wykresów funkcji oraz wizualizację wyników obliczeń w postaci rysunków statycznych i animacji. Możliwe jest pobieranie danych pomiarowych z urządzenia zewnętrznego przez porty w celu ich obróbki. Wszystko to powoduje że program ten znajduje bardzo szerokie zastosowanie. Istnieją alternatywne odpowiedniki tegoż programu rozprowadzane na licencjach FLOSS, takie jak Scilab czy Octave, jednak nie są tak rozbudowane jak Matlab. Obecnie (październik 2006) numer najnowszej wersji tego programu to 7.3 (Release 2006b)1
Przebieg ćwiczeń
Moje badania poza tymi wykonanymi na lekcjach polegały na szukaniu informacji w Internecie. Ponieważ serwer aplikacji nie działa, nie mogę dodać zrzutów ekranowych.
Pomoc
help polecenie – pomoc do polecenia w parametrze, można wpisać również bez bez polecenia lookfor słowo – szuka w pomocy słowa kluczowego helpdesk – wyświetla okno pomocy
Podstawy
= – przypisanie ans – domyślna odpowiedź
+ - – dodawanie i odejmowanie .* pozwala mnożyć tablice liczb, zamiast wykonywać mnożenie macierzowe. Analogiczne polecenia pozwalają uniknąć dzielenia macierzy. (AB-1)
- – mnożenie macierzy
t=a:c – tworzy listę liczb całkowitych od a do c t=a:b:c – tworzy listę liczb od a do c co b [1,2,3,…] – lista, przykładowo 1, 2, 3 [1;2;3;…] – kolumna, przykładowo 1, 2, 3 [a,b;c,d] – macierz a b c d
randn(m,n) – macierz wypełniona liczbami losowymi o podanych wymiarach
ones(m,n) – macierz wypełniona jedynkami o podanych wymiarach
' – macierz transponowane ze sprzężeniem .' – macierz transponowane bez sprzężenia (1:3)' to kolumna 1 2 3 i.' to i, a i' to -i
lista(zakres) – ograniczenie listy
'tekst' – tworzy łańcuch
- – pozwala uniknąć wyświetlania komunikatów. Przydatne w programach.
% – komentarz
Liczby i łańcuchy
Liczby można przekształcać na łańcuchy2: num2str(liczba) – Zapis dziesiętny liczby int2str(liczba) – Zapis dziesiętny liczby całkowitej dec2hex(liczba) dec2bin(liczba) dec2base(liczba, podstawa) – Zapis liczby całkowitej przy podstawie odpowiednio 16, 2, baza. hex2dec(łańcuch) bin2dec(łańcuch) base2dec(łańcuch, podstawa) – Odczyt liczby przy odpowiedniej podstawie Podstawa powinna być nie większa niż 36 (aby wystarczyło liter), ale base2dec działa poprawnie również dla większych liczb, chociaż nie można zapisać wszystkiego.
Funkcje trygonometryczne
pi – liczba pi
sin(x) cos(x) tan(x) – sinus, kosinus, tangens.
Instrukcja filter
filter(filtr,n,x) – filter[a] = (filtr[1]*x[a-b] + filtr[2]*x[a-(b-1)] + … + filtr[b]*x[a-1])/n używając oznaczenia tabel z Pascala. Pozwala stosować najprostsze filtry, np.: windowSize = 4; – parametr pozwala regulować stopień przefiltrowania fil = filter
Wizualizacja danych
plot(x,y) – wykres listy y w zależności od x plot(y) – zastępuje x liczbami całkowitymi od 1 plot3(x,y,z) – wykres w 3 wymiarach surf(x,y,z,kolory) (synonim surfc) – rysuje wykres macierzy z zależnie od list x, y, przy użyciu danych kolorów (domyślne przy surf(z) – x, y – całkowite od 1, kolor wg wysokości) polecenia typu plot(x,y, '--sg') – dodatkowy parametr tekstowy oznacza rodzaj linii
znak linia
- ciągła
-- przerywana
- Z kropek
-. Z kropek i kresek
znak punkt + plusy o kółka
- gwiazdki – asteryski
. punkty x krzyżyki 'square' lub s kwadraciki 'diamond' lub d romby ^ Trójkąciki skierowane w górę v trójkąciki „ w dół > trójkąciki „ w lewo < trójkąciki „ w prawo 'pentagram' lub p gwiazdki – pentagramy 'hexagram' lub h gwiazdki – heksagramy
znak Kolor (podstawowe addytywne i substraktywne + czarny i biały) r czerwony g zielony b niebieski c błękitny – cyjan m różowy – purpurowy – magenta y żółty k czarny w biały
figure(1) – otwiera nowe okno, przykładowo nr 1 hold on – nowy wykres nie zastępuje poprzedniego. Pozwala wyświetlić kilka wykresów w jednym oknie. grid on – siatka wykresu hold off, grid off – odwołuje odpowiednie polecenie
Operacje na plikach
cd folder – przejdź do folderu dir – lista plików w bieżącym folderze (w systemie Windows) ls – analogicznie pod Uniksem edit nazwa_pliku – edycja pliku type nazwa_pliku – drukuje wskazany plik nazwa_pliku.m – wykonuje plik typu m
Przykłady praktyczne
%najprymitywniejszy wykres t=1:10; y=sin(t); plot(y)
%sprawdzenie twierdzenia Nequista Fs=1024; %częstotliwość próbkowania A=1; %maksimum F1=128; %częstotliwość sygnału zakres=1:100; %ograniczenie zakresu do rysowania T=1/Fs; t=0:T:1; x=A*sin(2*pi*t*F1); plot(t(zakres),x(zakres));
% filtrowanie Fs=1024; %częstotliwość próbkowania A=1; %maksimum F1=128; %częstotliwość sygnału zakres=1:100; %ograniczenie zakresu do rysowania szum=0.1; %siła szumu filtr=4; %siła filtrowania T=1/Fs; t=0:T:1; x=A*sin(2*pi*t*F1)+szum*randn(size(t)); xodsz=filter(ones(1,filtr)/filtr,1,x); figure(1);plot(t(zakres),x(zakres)); figure(1);plot(t(zakres),xodsz(zakres));
Wnioski
Matlab jest rozbudowany, wiec przydatny. Dobrze radzi sobie z wieloma zadaniami, ale oczywiście nie pozwala sprawnie pracować z tablicami o zbyt dużych rozmiarach. Wadą jest wysoka cena. Dodatkowo licencja dla Politechniki pozwala na legalną instalację tylko w budynku Politechniki.
Źródła
http://www.mathworks.com/access/helpdesk/help/techdoc/ref/index.html?/access/helpdesk/help/techdoc/ 1 http://pl.wikipedia.org/wiki/MATLAB 2 http://rose.iinf.polsl.gliwice.pl/~darekc/inst/labzk/Matlab/Lancuchy.htm