Matlab Składnia + podstawy programowania

Podobne dokumenty
Matlab Składnia + podstawy programowania

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

Wprowadzenie do środowiska

Podstawy Programowania C++

Przetwarzanie sygnałów

1 Programowanie w matlabie - skrypty i funkcje

Wstęp do Programowania Lista 1

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

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

Ćwiczenie 1. Wprowadzenie do programu Octave

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

Ćwiczenie 1. Wprowadzenie do programu Octave

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

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

Metody i analiza danych

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Podstawowe operacje na macierzach

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

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

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

Matlab MATrix LABoratory Mathworks Inc.

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

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

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

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

Wprowadzenie do Scilab: podstawy języka Scilab

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

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

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

Metody optymalizacji - wprowadzenie do SciLab a

I. Podstawy języka C powtórka

Metody numeryczne Laboratorium 2

MATLAB Podstawowe polecenia

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:

Wprowadzenie do systemu Scilab

ANALIZA DANYCH I PROCESÓW. Mgr inż. Paweł Wojciech Herbin

Wykresy i interfejsy użytkownika

Cw.12 JAVAScript w dokumentach HTML

Zadania. Rozdział Wektory i macierze. 1.Podajpolecenie 1,któreutworzywektor: v = [100, 95, 90,..., 95, 100].

1 Podstawy c++ w pigułce.

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

MATLAB tworzenie własnych funkcji

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

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

JAVAScript w dokumentach HTML (1) JavaScript jest to interpretowany, zorientowany obiektowo, skryptowy język programowania.

Wprowadzenie do MS Excel

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Wprowadzenie do Scilab: macierze

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

Obliczenia w programie MATLAB

1 Podstawy c++ w pigułce.

Wykład 4. Matlab cz.3 Tablice i operacje na tablicach

Ćwiczenie 3: Wprowadzenie do programu Matlab

Elementy metod numerycznych - zajęcia 9

Pascal - wprowadzenie

MATLAB - laboratorium nr 1 wektory i macierze

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Część 4 życie programu

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

Wprowadzenie do Mathcada 1

Instalacja Pakietu R

Programowanie obiektowe - zadania

Niezwykłe tablice Poznane typy danych pozwalają przechowywać pojedyncze liczby. Dzięki tablicom zgromadzimy wiele wartości w jednym miejscu.

Wprowadzenie do systemu GNU Octave. Opracowanie: Jarosław Miszczak (miszczak(at)iitis(.)gliwice(.)pl) Wersja złożona 27/05/2009

Wprowadzenie do pakietów MATLAB/GNU Octave

zajęcia 2 Definiowanie wektorów:

Elementy Projektowania Inżynierskiego MATLAB Wprowadzenie.

Programowanie 3 - Funkcje, pliki i klasy

Programowanie w języku Python. Grażyna Koba

Wykład z Technologii Informacyjnych. Piotr Mika

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

Zanim zaczniemy GNU Octave

Definicja macierzy Typy i właściwości macierzy Działania na macierzach Wyznacznik macierzy Macierz odwrotna Normy macierzy RACHUNEK MACIERZOWY

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

Tablice mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Katowice, 2011

Zakłócenia w układach elektroenergetycznych LABORATORIUM

Pętla for. Matematyka dla ciekawych świata -19- Scilab. for i=1:10... end. for k=4:-1:1... end. k=3 k=4. k=1. k=2

Języki programowania C i C++ Wykład: Typy zmiennych c.d. Operatory Funkcje. dr Artur Bartoszewski - Języki C i C++, sem.

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

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

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

Operatory arytmetyczne

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

Język ludzki kod maszynowy

Uniwersytet Kazimierza Wielkiego w Bydgoszczy Zespół Szkół nr 5 Mistrzostwa Sportowego XV Liceum Ogólnokształcące w Bydgoszczy

2. Tablice. Tablice jednowymiarowe - wektory. Algorytmy i Struktury Danych

Języki programowania zasady ich tworzenia

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

utworz tworzącą w pamięci dynamicznej tablicę dwuwymiarową liczb rzeczywistych, a następnie zerującą jej wszystkie elementy,

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

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

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

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

do drukowania tekstu służy funkcja echo <?php echo "hello world!";?> jeżeli użyjemy jej kilka razy: <?php

RACHUNEK MACIERZOWY. METODY OBLICZENIOWE Budownictwo, studia I stopnia, semestr 6. Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska

INFORMATYKA Z MERMIDONEM. Programowanie. Moduł 5 / Notatki

Zadeklarowanie tablicy przypomina analogiczną operację dla zwykłych (skalarnych) zmiennych. Może zatem wyglądać na przykład tak:

Wprowadzenie do programowania w języku Visual Basic. Podstawowe instrukcje języka

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

Transkrypt:

Matlab Składnia + podstawy programowania Matlab Matrix Laboratory środowisko stworzone z myślą o osobach rozwiązujących problemy matematyczne, w których operuje się na danych stanowiących wielowymiarowe tabele macierze, wektory, itp. Sercem Matlaba jest interpreter poleceń, odpowiedzialny jest za wykonywanie poleceń/skryptówi programów. Kolejną cechą środowiska Matlab jest możliwość kompilacji kodu do postaci wykonywalnej czyli tworzenia tzw. Standlone applications, jak też pełne wsparcie dla środowisk Java VM, a ostatnio również.net. Charakterystyczną cechą Matlaba w porównaniu do innych podobnych środowisk jest składnia, zoptymalizowana pod kątem obliczeń macierzowych, tak zapis realizowanych operacji był maksymalnie zwięzły. Składnia matlaba Operator: Przypisania = Tworzenia macierzy [] Porównania == Większości, większy równy >, >= Mniejszości, mniejszy równy <, <= Mnożenia macierzowego * Mnożenia elementowego.* Dodawania, odejmowania +, - Dzielenia macierzowego / Dzielenia elementowego./ Potęgowania macierzowego ^ Potęgowania elementowego.^ Transpozycji Operator zakresu : a = 1; przypisanie do zmiennej a określonej wartości (macierz jednowymiarowa), rozmiar 1x1 b = [1 2 3 4]; przypisanie do zmiennej b wektora (jednowymiarowej tablicy) o elementach 1,2,3,4. Elementy oddzielane spacją lub przecinkiem tworzą wektor poziomy. Rozmiar 1x4 c = [1;2;3;4]; elementy oddzielone średnikiem tworzą wektor pionowy. Rozmiar 4x1 d = [1 2;3 4;5 6;7 8]; tworzona jest zmienna d będąca macierzą dwuwymiarową o rozmiarze 4x2 (cztery wiersze, dwie kolumny) Sprawdź wynik działa operacji: e = [1;2 3;3 4 5]; b(2) = 10; Przypisanie drugiemu elementowi wektora b wartości 3 d(3,2) = 7; Przypisanie do elementu znajdującego się w 3 wierszu i 2 kolumnie macierzy d wartości 7 Ponieważ Matlab posiada możliwość wektoryzacji macierzy możliwy jest również dostęp do określonego elementu macierzy poprzez zapis d(7) = 11; Matlab stosuje zapis kolumnowy! Czyli elementy d(i,j) zapisywane są wg zależności d(j*(j-1)+i), przy założeniu że d ma J wierszy i K kolumn d a == 2 w wyniku zwraca wartość 1 jeśli prawda lub 0 jeśli fałsz.

c == 2 w wyniku zwraca macierz o rozmiarze c zawierającą wartości 0 lub 1 w zależności czy dany element macierzy c był równy stałej Wynik=[0;1;0;0] Podobne zależności występują dla operatorów >,>=,<,<= Operatory arytmetyczne *,.*,/,./ Operator * oznacza mnożenie macierzy b = [1 2 3 4]; c = [1;2;3;4]; b*c 30 ale >> c*b 1 2 3 4 2 4 6 8 3 6 9 12 4 8 12 16 MNOŻENIE MACIERZY NIE JEST PRZEMIENNE Uwaga: Jęsli wykonywana jest dowolna operacja arytmetyczna i nie tylko bez przypisania wyniku tzn bez zapisu g = b*c; (samo b*c) wówczas wynik zapisywany jest do zmiennej ans Podczas gdy operator mnożenia elementowego.* oznacza pomnóż element przez element >> c.*b' 1 4 9 16 Zwróć uwagę na operator (transpozycji macierzy/wektora) Aby mogła zostać zrealizowana operacja.* rozmiar macierzy/wektorów obydwu zmiennych musi być identyczny. Powyższy zapis oznacza Dla każdego i dokonaj c(i).*b(i) Wynik operacji jest tego samego rozmiaru co c i b Podobne zależości zachodzą pomiędzy operatorami /,./,^,.^ Operator zakresu : Podstawową cechą jak i atutem języka matlab jest operator zakresu :. : oznacza pewien zakres wartości. Np. zapis d(:,1) oznacza weź pierwszą kolumnę z macierzy d. d(2,:) oznacza weź drugi wiersz z macierzy d. e = d(:,2) spowoduje utworzenie wektora e który będzie się składał z elementów e=[2;4;6;8] f = d(3,:) utworzenie wektora f o elementach f=[5 6]

Operator zakresu można też używać do określenia przedziału g = 2 : 5; oznacza to że zmienna g przyjmuje kolejne wartości g = [2 3 4 5] h = 3 : 0.1 : 4; oznacza h = [4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 5.0] Jeśli chcemy by kierunek przedziału był malejący to jedyną możliwą postacią jest: i = 6 : -1 : 2; co oznacza i = [6 5 4 3 2] Składnia języka Instrukcja warunkowa if warunek if warunek else if warunek1 elseif warunek2 elseif warunek3 switch zmienna case wartość case wartość Przy czym zmienna może być dowolnego typu zarówno string jak i liczba Pętle W matlabie występują dwa typy pętli for oraz Chile for zmienna=przedział wartości ciąg instrukcji np. for i=1:10 x(i) = i^2; while warunek ciąg instrukcji

np. i=1; while i<=10 x(i) = i^2; i = i+1; Przydatne polecenia a = load( nazwa.pliku ); - wczytanie zawartości pliku save( nazwa.pliku, zmienna ); - zapisanie zmiennej zmienna do pliku. Uwaga zmienna jest podawana jako napis! Jako nazwa zmiennej s=sort(a); - funkcja zwraca posortowane wartości podane w postaci wektora a wynik zapisywaney jest do zmiennej s. Jeśli a jest macierzą, funkcja sortuje każdą z kolumn niezależnie [s,o]=sort(a); - funkcja robi to co powyżej dodatkowo zwracając zmienną o która zawiera indeksy posortowanych wartości, tak że: (gdy a jest wektorem) s=a(o); plot(x,y); - rysuje wykres 2D, jeżeli x jest macierzą, rysuje kilka wykresów, osobno dla każdej kolumny macierzy x. Uwaga x oraz y muszą mieć ten sam rozmiar plot(x,y, ab ); tworzy wykres jak wyżej ale z odpowiedniemu właściwościami gdzie a może przyjmować wartości [r g b c m y k] odpowiadające kolorom wykresu, zaś b odpowiada postaci wykresu: - Ciągły : Linia punktowa.- Linia kropka punkt. Wykres punktowy s Punktowy, ale punkty są reprezentowane jako kwadraty ^ Punktowy, ale punkty są reprezentowane jako trójkąty > Punktowy, ale punkty są reprezentowane jako trójkąty zwrócone w prawo < Punktowy, ale punkty są reprezentowane jako trójkąty zwrócone w lewo hold on/off; - wywołanie powoduje hold on powoduje że podczas tworzenia nowego wykresu stara zawartość wykresu nie będzie usuwana. Domyślnie jest hold off; figure(i); tworzy obiekt graficzny o numerze i na którym będzie rysowany dany wykres. z = sum(x); sumuje wartości x, jeśli x jest macierzą o wymiarach (n x m) sumowanie następuje w kolumnach, tak iż po realizacji uzyskujemy wynik w postaci wektora o rozmiarze (1 x m) z = sum(x,dim); Podobnie jak wyżej z tą różnicą iż możemy wskazać wymiar macierzu po którym ma nastąpić sumowanie. mx = max(x); funkcja znajduje maksymalną wartość x, jeżeli x jest macierzą (n x m) funkcja max zwraca wektor wartości maksymalnych liczony osobno dla każdej kolumny mi = min(x); analogicznie jak wyżej dla szukania minimum. si = size(x); funkcja zwracająca rozmiar tablicy x. Domyślnie wartość zwracana przez funkcję jest dwuargumentowa zwracając ilość wierszy i ilość kolumn tablicy x. si(1) liczba wierszy, si(2) liczba kolumn si = size(x,n); podobnie jak wyżej z tą różnicą iż zmienna n określa wymiar który jest zwracany. Odpowiada to zależności si = size(x); si = si(n); fi = find(warunek); polecenie zwraca listę indeksów tabeli, które spełniają określony warunek np. x = [-1 1 2-3 4-2]; fi = find(x<0); wynikiem powyższego programu będzie fi = [1 4 6]

Zadania: Narysuj wykres funkcji y=x 2 dla x z przedziału -10 do 10 z krokiem 0.01 Na nowym rysunku narysuj wykres funkcji sin(x) oraz cos(x) dla x z przedział -2pi do 2pi z krokiem 0.01 Wczytaj dane z pliku iris.data (plik dostępny pod adresem: http://metet.polsl.pl/~mblachnik/doku.php?id=dydaktyka:zajecia:io) i dokonaj jego normalizacji (normalizacja oznacza sprowadzenie wartości do przedziału 0-1). Innymi słowy normalizacja powoduje że wartości danej zmiennej powinny mieścić się w przedziale x min( x) od 0 do 1. Aby to zrealizować posłuż się zależnością y max( x) min( x) Pamiętaj że zbiór Iris.data składa się z 5 kolumn i należy dokonać normalizacji każdej z nich Po normalizacji narysuj każdą z kolumn tak iż na osi x są numery poszczególnych wektorów, a na osi y ich wartości. Narysuj wykres przedstawiający wymiar 3 i 4, przy czym przypadki z różnych gatunków narysuj innym kolorem i zaznacz innym symbolem.