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

Podobne dokumenty
Wprowadzenie do środowiska MATLAB z zastosowaniami w analizie danych EEG

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

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

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

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 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Metody numeryczne. Instytut Sterowania i Systemów Informatycznych Wydział Elektrotechniki, Informatyki i Telekomunikacji Uniwersytet Zielonogórski

Podstawy MATLABA, cd.

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

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

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

Matlab III Instrukcje, interpolacja, dopasowanie krzywych,

Matlab MATrix LABoratory Mathworks Inc.

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

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

PHP w-3. Sterowanie w PHP

Elementy metod numerycznych - zajęcia 9

Metody numeryczne Laboratorium 2

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

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

PHP: bloki kodu, tablice, obiekty i formularze

Matlab Składnia + podstawy programowania

Matlab Składnia + podstawy programowania

Laboratorium 3 Grafika 2D i 3D w Matlabie. Wprowadzenie do programowania

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

1 Podstawy c++ w pigułce.

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

MATLAB - podstawy użytkowania

Podstawy programowania. Wykład 3 Konstrukcje sterujące. Krzysztof Banaś Podstawy programowania 1

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

Elementy Projektowania Inżynierskiego MATLAB Wprowadzenie.

Wykresy i interfejsy użytkownika

Spis treści. I. Skuteczne. Od autora... Obliczenia inżynierskie i naukowe... Ostrzeżenia...XVII

Modelowanie rynków finansowych z wykorzystaniem pakietu R

Informacja o języku. Osadzanie skryptów. Instrukcje, komentarze, zmienne, typy, stałe. Operatory. Struktury kontrolne. Tablice.

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:

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Przetwarzanie sygnałów

Ćwiczenie 1. Wprowadzenie do programu Octave

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

Podstawy Programowania C++

Z. Rudnicki: WPROWADZENIE DO INFORMATYKI I PROGRAMOWANIA

ŚRODOWISKO MATLAB cz.3 Implementowanie algorytmów w skryptach i funkcjach programu

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

Operacje logiczne i struktury sterujące.

Metody i analiza danych

Elementy projektowania inzynierskiego Przypomnienie systemu Mathcad

Bash - wprowadzenie. Bash - wprowadzenie 1/39

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

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

MATLAB Podstawowe polecenia

Podstawy Informatyki Computer basics

1 Podstawy c++ w pigułce.

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

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

Wstęp do Informatyki dla bioinformatyków

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

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

1 Programowanie w matlabie - skrypty i funkcje

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Wstęp do Programowania Lista 1

Wprowadzenie do środowiska

Ćwiczenie 1. Wprowadzenie do programu Octave

Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane.

Naukę zaczynamy od poznania interpretera. Interpreter uruchamiamy z konsoli poleceniem

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

4. Funkcje. Przykłady

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

Wprowadzenie do systemu Scilab

Programowanie w języku Python. Grażyna Koba

Daniel Wójcik Wprowadzenie do Matlaba

Programowanie - instrukcje sterujące

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

Ćwiczenie 4. Matlab - funkcje, wielomiany, obliczenia symboliczne

Laboratorium Cel ćwiczenia Ćwiczenie ma na celu praktyczne przedstawienie grafiki 3D.

Umieszczanie kodu. kod skryptu

LibreOffice Calc VBA

Scilab skrypty (programowanie)

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

Kier. MTR Programowanie w MATLABie Laboratorium. 1. Tworzenie m-plików skryptowych i uruchamianie skryptów

a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8] a[9] a[10]

Informatyka 1. Plan dzisiejszych zajęć. zajęcia nr 1. Elektrotechnika, semestr II rok akademicki 2008/2009

Instalacja Pakietu R

Nazwa implementacji: Nauka języka Python pętla for. Autor: Piotr Fiorek

System operacyjny Linux

Język skryptowy: Laboratorium 1. Wprowadzenie do języka Python

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

Laboratorium Wstawianie skryptu na stroną: 2. Komentarze: 3. Deklaracja zmiennych

Przetwarzanie i analiza danych w języku Python / Marek Gągolewski, Maciej Bartoszuk, Anna Cena. Warszawa, Spis treści

Programowanie w języku C++ Grażyna Koba

JAVA. Platforma JSE: Środowiska programistyczne dla języka Java. Wstęp do programowania w języku obiektowym. Opracował: Andrzej Nowak

MATLAB tworzenie własnych funkcji

Wykład z Technologii Informacyjnych. Piotr Mika

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

Języki skryptowe w programie Plans

Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Transkrypt:

Wprowadzenie do środowiska MATLAB z zastosowaniami w modelowaniu i analizie danych Daniel Wójcik Instytut Biologii Doświadczalnej PAN Szkoła Wyższa Psychologii Społecznej d.wojcik@nencki.gov.pl tel. 022 5892 424 http://www.neuroinf.pl/members/danek/swps/matlab_html

1. Wprowadzenie do środowiska MATLAB. Elementy interfejsu graficznego, dostępne narzędzia, system pomocy, darmowe odpowiedniki MATLABA, elementarne obliczenia i wykresy. 2. Tablice i macierze. Własności, generacja, operacje na macierzach, interpretacja. 3. Grafika. Podstawowe wykresy w MATLABie, edycja wykresów, przygotowanie wykresów do publikacji i prezentacji, wykresy trójwymiarowe, przetwarzanie obrazów, animacje. 4. Programowanie. Sterowanie programem, struktury danych, skrypty i funkcje. 5. Tworzenie interfejsów graficznych do skryptów MATLABa. 6. Modelowanie deterministyczne. Układy z czasem dyskretnym i ciągłym. Oscylacje i chaos. Szukanie rozwiązań i wizualizacja. 7. Wybrane metody numeryczne. Interpolacja i ekstrapolacja. Dopasowywanie funkcji. 8. Liczby losowe. Generacja i zastosowanie w symulacjach stochastycznych. 9. Elementy statystycznej analizy danych w MATLABie. 10. Praca nad własnymi problemami (różne zastosowania)

Programowanie Sterowanie programem Struktury danych Skrypty i funkcje.

M-pliki mfile1.m Jeżeli wykonujemy skomplikowane zadanie, wymagające użycia wielu kom, wygodnie jest wpisać wszystkie komy do pliku, zwanego M- plikiem. Tworzymy w edytorze plik mfile1.m i wpisujemy zawartość prawej kolumny, a następnie po nagraniu pliku w linii kom piszemy mfile1 lub klikamy F9 w edytorze z = peaks; zplot = z; % Do the peaks: clf subplot(221) ind = find(z<0); zplot(ind) = zeros(size(ind)); mesh(zplot) axis tight % Do the valleys: subplot(222) ind = find(z>0); zplot = z; zplot(ind) = zeros(size(ind)); mesh(zplot) axis tight

M-pliki Linie zaczynające się od znaku % są komentarzami i są ignorowane. Zmienne utworzone danym skryptem pozostają w przestrzeni roboczej Matlaba: >> clear >> whos >> mfile1 >> whos Skrypty mogą też operować na zmiennych w przestrzeni roboczej Matlaba. Skrypty mogą uruchamiać inne skrypty Name ind z zplot Size Bytes Class 1544x1 12352 double array 49x49 19208 double array 49x49 19208 double array

Funkcje function x = kwadratowe(a,b,c) Funkcje to m-pliki, % KWADRATOWE Znajduje pierwiastki których można użyć do % rownania kwadratowego. rozszerzania języka % Matlaba. Mogą % X = KWADRATOWE(A,B,C) zwraca oba przyjmować argumenty % pierwiastki rownania kwadratowego wejściowe i wyjściowe. % y = A*x^2 + B*x + C. % Pierwiastki sa zwracane w macierzy % X = [X1 X2]. Wiele funkcji Matlaba jest implementowanych jako m-pliki. Napisz: type mean Funkcje używają zmiennych lokalnych, które nie pojawiają się w głównej przestrzeni roboczej Matlaba Plik kwadratowe.m % na podstawie skryptu A. Knighta, % kwiecien 2007 delta = 4*a*c; mian = 2*a; pierwyz = sqrt(b.^2 delta); % Pierwiastek wyznacznika x1 = ( b + pierwyz)./mian; x2 = ( b pierwyz)./mian; x = [x1 x2];

Funkcje m-pliki funkcji mają format function [output] = function_name(input) np. function x = kwadratowe(a,b,c) przykłady składni: function [xx,yy,zz] = kula(n) function fajnywykres function a = listy(x,y,z,t) Nazwa funkcji powinna być taka sama jak nazwa pliku, w którym jest zdefiniowana. Komentarze po słowie function są wyświetlane komą help. Np. help kwadratowe Komentarze i puste linie mogą pojawiać się gdziekolwiek w pliku.

Kontrola wykonania MATLAB ma 4 rodzaje wyrażeń służące do kontroli wykonania: if, else, elseif switch, case, otherwise while, for, wykonaj wyrażenia w oparciu o wynik testu logicznego wykonaj grupę wyrażeń w oparciu o wynik testu logicznego wykonaj wyrażenia nieokreśloną liczbę razy w oparciu o wynik testu logicznego wykonaj wyrażenia określoną liczbę razy

if, else, elseif Podstawowa forma wyrażenia if to: if test statements test jest wyrażeniem, które przyjmuje wartości albo 1 (prawda) albo 0 (fałsz). Wyrażenia pomiędzy wyrażeniami if oraz są wykonywane, jeżeli test jest prawdą. Jeżeli test jest fałszem, wyrażenia te będą zignorowane i program będzie wykonywany od pierwszej linijki następującej po wyrażeniu. Wyrażenie test może być wektorem albo macierzą. W tym wypadku wszystkie elementy muszą wynosić 1, żeby wyrażenia zostały wykonane. Dalsze testy można przeprowadzić korzystając z else, elseif if test statements1 elseif test2 statements2 else statements3

switch Podstawowa forma wyrażenia switch: switch test case result1 statements case result2 statements... otherwise statements Odpowiednie wyrażenia są wykonywane, jeżeli test jest równy odpowiedniemu wynikowi. Jeżeli żaden z podanych wyników nie ma miejsca, wykonywane są wyrażenia podane po otherwise. Jeżeli te same wyrażenia mają być wykonywane dla różnych wyników, należy użyć nawiasów klamrowych: switch x case 1 disp('x is 1') case {2,3,4} disp('x is 2, 3 or 4') case 5 disp('x is 5') otherwise disp('x is not 1, 2,... 3, 4 or 5')

Podstawowa forma pętli while: while test statements pętla while Wyrażenia są wykonywane wielokrotnie dopóki wartość testu wynosi 1. Na przykład żeby znaleźć pierwszą liczbę dla której 1+2+ +n jest większe od 1000 możemy napisać: n = 1; while sum(1:n)<=1000 n = n+1; Szybkim sposobem na wykomentowanie fragmentu kodu jest otoczenie go komami while 0 i. Tak otoczony fragment nigdy nie będzie wykonany.

clf; colormap(gray) plotnum = 1; z = peaks(20); for az = 0:10:350 subplot(6,6,plotnum) surfl(z),shading flat view(az,30) axis tight axis off plotnum = plotnum + 1; pętla for Podstawowa forma pętli for: for index = start:przyrost:stop statements Przyrost można ominąć, wtedy przyjmuje się 1. Przyrost może być dodatni lub ujemny. Przy pierwszym przebiegu przez pętlę indeks będzie miał wartość start. W każdym kolejnm przebiegu indeks będzie miał wartość zwiększoną o przyrost dopóki nie przekroczy wartości stop. Ten przykład generuje widoki funkcji peaks z różnych kątów:

pętla for Indeks pętli for może być wektorem albo macierzą. Jeżeli jest wektorem, pętla będzie wykonana tyle razy ile jest elementów w wektorze, przy czym w kolejnych przebiegach indeks przyjmuje kolejne wartości wektora. Jeżeli indeks jest macierzą pętla zostanie wykonana tyle razy ile jest kolumn macierzy, przy czym wartości indeksu w kolejnych przebiegach będą równe kolumnom macierzy. Na przykład: >> q = pascal(3) q= 1 1 1 1 2 3 1 3 6 >> for i = q,i, i= 1 1 1 i = 1 2 3 i = 1 3 6

Przykład: generacja filmu film 1: ewolucja rozkładu prawdopodobieństwa film 2: Obracający się wykres funkcji peaks film 3: zależne od czasu rozwiązanie równania kabla

bias = 0.75; dane=rand(1,700); dane(find(dane < bias))= 0; dane(find(dane > 0))=1; n=length(dane); H = 0:0.01:1; E = exp(( (H 0.5).^2)/(0.1.^2)); aviobj = avifile('mymovie75.avi','fps',15); Film 1: i=0; while i < n if i < 50 i = i+1; else i=i+10; tencyjność monety w ujęciu bayesowskim r=length(find(dane(1:i) == 0)); wykres1 = (H.^r).*(1 H).^(i r); wykres2 = (H.^r).*(1 H).^(i r).*e; plot(h, wykres1 / max(wykres1)); hold on; plot(h, wykres2/ max(wykres2), 'r'); hold off; frame = getframe(gcf); aviobj = addframe(aviobj,frame); aviobj = close(aviobj);

clf; colormap(gray) plotnum = 1; z = peaks(20); Film 2: Obracający się wykres funkcji peaks aviobj = avifile('peaks.avi','fps',15); for az = 0:1:359 surfl(z),shading flat view(az,30) axis tight axis off frame = getframe(gcf); aviobj = addframe(aviobj,frame); aviobj = close(aviobj);