Przejdź do zawartości

Wikipedysta:BartekChom/brudnopis

Z Wikibooks, biblioteki wolnych podręczników.

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