MATLAB Podstawowe polecenia

Podobne dokumenty
WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI I INFORMATYKI INSTYTUT AUTOMATYKI I INFORMATYKI KIERUNEK AUTOMATYKA I ROBOTYKA STUDIA STACJONARNE I STOPNIA

1 Programowanie w matlabie - skrypty i funkcje

1 Podstawy c++ w pigułce.

Instrukcja obsługi programu Gauss To jest pierwsza wersja (autor: Dobromił Serwa)

Matlab Składnia + podstawy programowania

MATLAB - laboratorium nr 1 wektory i macierze

Diary przydatne polecenie. Korzystanie z funkcji wbudowanych i systemu pomocy on-line. Najczęstsze typy plików. diary nazwa_pliku

SKRYPTY. Zadanie: Wyznaczyć wartość wyrażenia arytmetycznego

Metody numeryczne Laboratorium 2

Metody Numeryczne. Laboratorium 1. Wstęp do programu Matlab

Matlab Składnia + podstawy programowania

Wprowadzenie do środowiska

GNU Octave (w skrócie Octave) to rozbudowany program do analizy numerycznej.

1 Podstawy c++ w pigułce.

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Matlab, zajęcia 3. Jeszcze jeden przykład metoda eliminacji Gaussa dla macierzy 3 na 3

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Elementy metod numerycznych - zajęcia 9

Przetwarzanie sygnałów

WPROWADZENIE DO ŚRODOWISKA SCILAB

Obliczenia w programie MATLAB

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Podstawy Programowania C++

Przykład 1 -->s="hello World!" s = Hello World! -->disp(s) Hello World!

MATLAB wprowadzenie śycie jest zbyt krótkie, aby tracić czas na pisanie pętli!

Podstawowe operacje na macierzach

Wprowadzenie do Scilab: macierze

Ćwiczenie 1. Wprowadzenie do programu Octave

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Laboratorium Algorytmy Obliczeniowe. Lab. 9 Prezentacja wyników w Matlabie

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

Wykorzystanie programów komputerowych do obliczeń matematycznych

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Metody i analiza danych

Ćwiczenie 1. Matlab podstawy (1) Matlab firmy MathWorks to uniwersalny pakiet do obliczeń naukowych i inżynierskich, analiz układów statycznych

Podstawy MATLABA, cd.

Maxima i Visual Basic w Excelu

PRZETWARZANIE I ORGANIZOWANIE DANYCH: ARKUSZ KALKULACYJNY

Ćwiczenie 1. Wprowadzenie do programu Octave

Podstawy programowania Laboratorium. Ćwiczenie 2 Programowanie strukturalne podstawowe rodzaje instrukcji

PRZYKŁADOWE SKRYPTY (PROGRAMY W MATLABIE Z ROZSZERZENIEM.m): 1) OBLICZANIE WYRAŻEŃ 1:

MATLAB tworzenie własnych funkcji

JAVAScript w dokumentach HTML - przypomnienie

Po uruchomieniu programu nasza litera zostanie wyświetlona na ekranie

Programowanie w języku Python. Grażyna Koba

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Wprowadzenie do Scilab: macierze

AKADEMIA GÓRNICZO-HUTNICZA im. Stanisława Staszica w Krakowie

Algebra macierzy

Wprowadzenie do systemu Scilab

Komentarze w PHP (niewykonywane fragmenty tekstowe, będące informacją dla programisty)

Przewodnik dla każdego po: Dla każdego coś miłego Microsoft Excel 2010

Temat: Arkusze kalkulacyjne. Program Microsoft Office Excel. Podstawy

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Ćwiczenie 3. MatLab: Algebra liniowa. Rozwiązywanie układów liniowych

Wprowadzenie do MS Excel

Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:

Wstęp do Programowania Lista 1

Matlab MATrix LABoratory Mathworks Inc.

Program na zaliczenie: Odejmowanie widm

Podstawy programowania skrót z wykładów:

Instalacja Pakietu R

WEKTORY I MACIERZE. Strona 1 z 11. Lekcja 7.

Widoczność zmiennych Czy wartości każdej zmiennej można zmieniać w dowolnym miejscu kodu? Czy można zadeklarować dwie zmienne o takich samych nazwach?

Podstawowe operacje na macierzach, operacje we/wy

Akademia Górniczo-Hutnicza Wydział Elektrotechniki, Automatyki, Informatyki i Elektroniki

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Wprowadzenie do Scilab: macierze

Scilab skrypty (programowanie)

Programy wykorzystywane do obliczeń

15. Macierze. Definicja Macierzy. Definicja Delty Kroneckera. Definicja Macierzy Kwadratowej. Definicja Macierzy Jednostkowej

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

Ćwiczenie 3: Wprowadzenie do programu Matlab

Cw.12 JAVAScript w dokumentach HTML

Notatki z Matlaba. Rafał Zduńczyk. January 6, 2018

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych

Otwórz R. Zmień katalog roboczy za pomocą File/Change Dir. Wczytaj plik przypisując go obiektowi o nazwie students:

Pętle iteracyjne i decyzyjne

WIMIM/MIBM/N1/-/B04 WIMIM/ME/S1/-/C46 WIMIM/IM/S1/-/B19

Programowanie komputerowe. Zajęcia 1

Modelowanie Systemów Dynamicznych Studia zaoczne, Automatyka i Robotyka, rok II. Podstawy MATLABA, cz2.

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

do instrukcja while (wyrażenie);

Ekonometria. Regresja liniowa, współczynnik zmienności, współczynnik korelacji liniowej, współczynnik korelacji wielorakiej

Pętle i tablice. Spotkanie 3. Pętle: for, while, do while. Tablice. Przykłady

Program szkoleniowy. 24 h dydaktycznych (18 h zegarowych) NAZWA SZCZEGÓŁY CZAS

Warunki logiczne instrukcja if

Ćwiczenia Skopiować do swojego folderu plik cwiczenia-kl.ii.xls, a następnie zmienić jego nazwę na imię i nazwisko ucznia

Politechnika Gdańska Wydział Elektrotechniki i Automatyki Katedra Inżynierii Systemów Sterowania

Matlab, zajęcia 2. Dwukropek. Tomasz Mostowski 28.luty 2008

WyŜsza Szkoła Zarządzania Ochroną Pracy MS EXCEL CZ.2

Przykładowo, jeśli współrzędna x zmienia się od 0 do 8 co 1, a współrzędna y od 12 co 2 do 25, to punkty powinny wyglądać następująco:

Dynamiczne przetwarzanie stron. dr Beata Kuźmińska-Sołśnia

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

LibreOffice Calc VBA

Wprowadzenie do Pakietu R dla kierunku Zootechnika. Dr Magda Mielczarek Katedra Genetyki Uniwersytet Przyrodniczy we Wrocławiu

Zadanie Tworzenie próbki z rozkładu logarytmiczno normalnego LN(5, 2) Plot Probability Distributions

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Ściągawka z Matlaba / Octave

Transkrypt:

MATLAB Podstawowe polecenia W MATLABie możliwe jest wykonywanie prostych obliczeń matematycznych. Działania (np. +) należy wpisać w okienku poleceń na końcu naciskając klawisz enter. Program MATLAB wydrukuje wynik obliczenia poniżej. >> +0^2 0 >> log(2)+sqrt(25) 7.4849 >> factorial(23).246e+205 MATLAB ma bardzo rozbudowaną pomoc, którą możemy uzyskać wybierając w menu pozycję Help (F). Jeżeli chcemy sprawdzić, jakie funkcje matematyczne są dostępne dla użytkownika, to możemy skorzystać ze spisu treści pomocy (np. wybrać pozycję MATLAB Mathematics ) lub wyszukać w oknie pomocy polecenie samemu. Przydatna jest możliwość definiowania zmiennych i wykonywania działań przy ich pomocy. Nazwy zmiennych (a także funkcji i macierzy) mogą być niemal dowolnie długie, ale nie mogą zawierać spacji. W najprostszy sposób zmienne definiuje się poprzez przypisanie im wartości. >> a= a = >> b=2; >> a+b*a^(/b); >> a+b*a^(/b) 3 Program wyświetla przypisaną zmiennej wartość, chyba że wiersz zakończony jest średnikiem. Wystąpienie średnika powoduje, że program nie wyświetla wyniku, ale wykonuje działanie w pamięci. Możliwe jest też przeprowadzanie działań na macierzach. Zdefiniowanie macierzy danych wymaga użycia nawiasów kwadratowych lub zdefiniowania rozmiarów macierzy w nawiasach kwadratowych (np. x[2,3]). Spacje oddzielają wartości w wierszu, a średniki oddzielają kolejne wiersze.

>> aa = [ 2 3; 4 5 6]; >> aa aa = 2 3 4 5 6 >> bb = [a b 0; 3 b a] bb = 2 0 3 2 Można także przypisywać elementom macierzy wartości zdefiniowanych wcześniej zmiennych (tutaj: a i b). Przypisywanie wartości elementom macierzy jest jednak często kłopotliwe i czasochłonne. Dlatego istnieje szereg funkcji, które ułatwiają przypisywanie wartości macierzom. >> jedynki = ones(2,4); %macierz 2x4 z samych jedynek >> zera = zeros(,2); %macierz x2 z samych zer >> sekwencja = ::5; %wektor poziomy x5 przyjmujący %wartości ciągu arytmetycznego od do 5 >> sekwencja = :5:0 %ale... sekwencja = 6 >> qq = eye(4); %macierz jednostkowa o wymiarach 4x4 >> losowe = rand(2,4); %macierz 2x4 liczb pseudo-losowych z rozkładu %jednostajnego U(0,) >> losowe_n = randn(5,2); %macierz 5x2 liczb pseudo-losowych z rozkładu %normalnego N(0,); >> B = repmat(aa,2,3) %powiela macierz w wierszach i kolumnach B = 2 3 2 3 2 3 4 5 6 4 5 6 4 5 6 2 3 2 3 2 3 4 5 6 4 5 6 4 5 6 Parametry funkcji ones, zeros, eye, rand, randn zapisane w okrągłych nawiasach oznaczają odpowiednie rozmiary macierzy. Symbolem % oddzielone są komentarze do działań. Komentarza program nie traktuje jak polecenia i nie próbuje go wykonywać. Komentarz obowiązuje do końca linijki (do symbolu przejścia do następnego wiersza). Sposób zapisywania działań na macierzach jest intuicyjny, a samo wykonywanie działań jest bardzo szybkie. Dostępne są operatory sumowania (+), odejmowania (-), mnożenia (*), dzielenia przez skalar (/), potęgowania (^), mnożenia i dzielenia macierzy element po elemencie (odpowiednio.* i./ ), transponowania ( ) i inne. >> aa+bb 2 4 3 7 7 7 >> aa./bb.0000.0000 0.3000.3333 2.5000 6.0000

>> aa.^bb %do potęgowania elementu przez element potrzeba.^ 4 59049 64 25 6 >> kron(aa,bb) Jednak silnia (factorial), czy iloczyn Kroneckera (kron(aa,bb)) wymagają użycia funkcji. Możliwe jest łączenie pionowe i poziome macierzy. >> [aa bb] 2 3 2 0 4 5 6 3 2 >> [aa; bb] 2 3 4 5 6 2 0 3 2 Odwołania do poszczególnych elementów macierzy dokonuje się wykorzystując nawiasy okrągłe. W komentarzach przedstawiono znaczenie poszczególnych poleceń. >> aa(2,2) %element z 2. wiersza i 2. kolumny 5 >> aa(:,[2 3]) %elementy ze wszystkich wierszy i kolumn 2 i 3 2 3 5 6 >> aa(,:3) %elementy z. wiersza i kolumn od do 3 2 3 Często potrzebna jest też wiedza na temat liczby wierszy i kolumn macierzy. >> size(aa) %liczba wierszy i kolumn 2 3 >> size(aa,2); %liczba wierszy i kolumn >> size(aa,); %liczba wierszy i kolumn Inne ważne funkcje często użyteczne przy budowaniu procedur i symulacji ekonometrycznych przedstawiono poniżej. >> diag(eye(2)) %wektor elementów diagonalnych macierzy eye(2) >> reshape(aa,,6) %przekształca i zmienia wymiary macierzy 4 2 5 3 6

>> inv(v); %odwrotność macierzy v >> det(v); %wyznacznik z macierzy v >> cov(randn(00,2)) %macierz kowariancji z próby.04 0.0283 0.0283 0.8887 >> sum(aa) %suma elementów w kolumnach 5 7 9 >> sum(aa,2) %suma elementów w wierszach 6 5 >> min(aa) %minimum w kolumnach 2 3 >> min(aa,2) %minimum z dwóch elementów dla całej macierzy aa 2 2 2 2 2 >> min(aa,[],2) %minimum według 2. wymiaru (w wierszach) 4 >> max(aa); %maksymalna wartość w kolumnach >> mean(aa) %średnia wartość w kolumnach 2.5000 3.5000 4.5000 >> std(aa) %odchylenie standardowe w kolumnach 2.23 2.23 2.23 >> corr(randn(00,3)); %macierz korelacji Programy i funkcje Praca w systemie obliczeniowym MATLAB najczęściej polega na pisaniu i wykonywaniu wielu poleceń. Można zautomatyzować ten proces poprzez napisanie w dowolnym edytorze tekstu kolejnych linijek poleceń i potraktowanie ich łącznie jak jednego programu. MATLAB wykona taki program linijka po linijce. Pliki z programami i funkcjami napisanymi w języku MATLAB mają predefiniowane rozszerzenia *.m. Aplikacja MATLAB zawiera własny wbudowany edytor tekstu, który ułatwia pisanie i uruchamianie programów dzięki wbudowanym funkcjom (np. rozpoznawanie funkcji, słów kluczowych itp.). Podobnie, możliwe jest definiowanie funkcji, które zawierać mogą szereg poleceń. Następnie, każda funkcja może być wywołana wielokrotnie, w dowolnym miejscu programu, za każdym razem przy użyciu pojedynczego polecenia. Funkcje mogą przyjmować argumenty i zwracać dowolną liczbę wartości w postaci macierzy, wektorów, skalarów itp. Funkcja rozpoczyna się od polecenia function i kończy się poleceniem end lub końcem pliku.

Poszczególne funkcje zapisywane są zwykle w osobnych plikach. Poniższa funkcja przyjmuje dwa argumenty i zwraca trzy wartości. function [x, y, z] = moja_funkcja(a, b) a, b x = randn(,)*a; y = randn(,)*b; z = ; disp('wykonuje procedurę:'); end %definiuje funkcję, argumenty: %koniec definicji funkcji Wynik wywołania funkcji z okna poleceń jest następujący. >> [x,y,z] = moja_funkcja(, ) wykonuje procedurę: x = 0.8622 y = 0.388 z = Pętle i polecenia warunkowe Wielokrotne wykonywanie sekwencji poleceń możliwe jest dzięki zastosowaniu pętli. Wyrażenie for nazwa_zmiennej=start:step:stop end pozwala wykonywać grupę poleceń aż do momentu, kiedy zmienna nazwa_zmiennej osiągnie wartość stop. Zmienna nazwa_zmiennej na początku przyjmuje wartość start i przy kolejnym wykonaniu pętli zmienia się o wartość step. zz = 0; for v = ::5; zz = [zz v]; end zz Wynik wywołania pętli jest następujący. zz = 0 2 3 4 5 Podobnie zdefiniowane jest wyrażenie while warunek end. Wyrażenie to wykonuje pętlę kiedy warunek jest prawdziwy. Na wydruku poniżej warto zwrócić uwagę na sposób drukowania na ekranie tekstu i liczb razem w jednej linijce. Konieczna jest zamiana liczby na tekst. n = 0; f = 0; while n > n = n-; f = f+n; end

disp(['wynik = ' num2str(f)]) Wynik wywołania pętli jest następujący. wynik = 45 Warto zwrócić uwagę na operator relacyjny ==, który oznacza równość zmiennych po obu stronach operatora. Warunek i==4 jest prawdziwy, kiedy i równe jest 4. Inne operatory relacyjne to <, >, <=, ~=. Prawdziwe wyrażenie zwraca wartość, a fałszywe wyrażenie zwraca 0. Polecenia warunkowe wykonywane są przy pomocy wyrażenia if warunek elseif warunek_2 elseif warunek_n else endif. Jeśli warunek jest prawdziwy to wykonywana jest grupa poleceń po tym warunku. Jeśli warunek jest fałszywy to sprawdzany jest warunek_2 i gdy jest prawdziwy, to wykonywane są polecenia po tym warunku. Jeśli warunek_2 jest fałszywy, to sprawdzany jest kolejny warunek, itd. Jeśli żaden warunek nie jest prawdziwy to wykonywane są polecenia po komendzie else. Wyrażenia elseif warunek i else nie są obowiązkowe. q = ; if q==; disp('q = '); q = q + ; elseif q==2; disp('q = 2'); else; %wydrukuje ten tekst disp('q <> i 2'); end; disp(q); %wykrukuje 2 %nie sprawdzi tego warunku %nie wydrukuje tego tekstu %nie wydrukuje tego tekstu W trakcie wykonywania powyższego programu komputer wydrukuje następujący wynik. q = 2 Grafika Tworzenie wykresów w Gaussie jest bardzo proste, a dostępne polecenia i opcje umożliwiają zmienianie wielu parametrów wykresów. Do rysowania wykresów liniowych przydatne jest polecenie plot. plot(:00,rand(00,2)); %wykres dwóch zmiennych/szeregów

Skopiowanie wykresu do innego dokumentu lub nagranie do pliku możliwe jest z menu okna wykresu (odpowiednio, pozycja Edit Copy Figure lub File Save As ) Można manipulować kształtem i kolorem linii poprzez dodanie dodatkowych opcji do polecenia plot (rodzaje linii: -, --, :, -. oraz rodzaje punktów: +, o, *,., x, s, d, ^, v, <, >, p, h oraz kolory linii: r, g, b, c, m, y, k, w). figure %rozpoczyna nowe okno z wykresem t = 0:pi/0:2*pi; % wartości na osi x plot(t,sin(t),'-.r*') % linie+kropki i czerwone gwiazdki hold on % następne linie na tym samym wykresie plot(t,sin(t-pi/2),'--ko') % przerywana linia, czarna, okręgi plot(t,sin(t-pi)*0.5,':md') % punkty, różowe, diamenty hold off % koniec dorysowywania do wykresu

Możliwe jest między innymi rysowanie histogramu dla wektora obserwacji przy pomocy polecenia histogram. >> histogram(rand(000,)); % histogram z rozkładu u(0,) >> histogram(randn(000,),50); % histogram z rozkładu N z 50 przedziałami Dostępne są funkcje do rysowania wykresów przedziałowych, z dwoma osiami y, 3D, typu pudełkowego, okrągłe itp. Szczegóły w oknie pomocy, np. po wpisaniu graphics.