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++

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

Przetwarzanie sygnałów

Wstęp do Programowania Lista 1

1 Programowanie w matlabie - skrypty i funkcje

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

Ćwiczenie 1. Wprowadzenie do programu Octave

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

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

I. Podstawy języka C powtórka

Ćwiczenie 1. Wprowadzenie do programu Octave

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

Metody i analiza danych

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

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

MATLAB - laboratorium nr 1 wektory i macierze

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

do MATLABa programowanie WYKŁAD Piotr Ciskowski

Podstawowe operacje na macierzach

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

Programowanie 3 - Funkcje, pliki i klasy

METODY KOMPUTEROWE W OBLICZENIACH INŻYNIERSKICH

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

Matlab MATrix LABoratory Mathworks Inc.

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk

Programowanie obiektowe - zadania

PętlaforwOctave. Roman Putanowicz 13 kwietnia 2008

Metody optymalizacji - wprowadzenie do SciLab a

Wprowadzenie do Scilab: podstawy języka Scilab

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

Metody numeryczne Laboratorium 2

Wprowadzenie do systemu Scilab

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

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

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

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

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:

Elementy metod numerycznych - zajęcia 9

Programowanie w języku Python. Grażyna Koba

PROGRAMOWANIE W PYTHONIE OD PIERWSZYCH KROKÓW

MATLAB Podstawowe polecenia

Warunki logiczne instrukcja if

Wykresy i interfejsy użytkownika

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


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

1 Podstawy c++ w pigułce.

Elementy Projektowania Inżynierskiego MATLAB Wprowadzenie.

Obliczenia w programie MATLAB

zajęcia 2 Definiowanie wektorów:

Wprowadzenie do MS Excel

Zanim zaczniemy GNU Octave

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

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

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

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

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

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

Wstęp do programowania

1 Podstawy c++ w pigułce.

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

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

Wiadomości wstępne Środowisko programistyczne Najważniejsze różnice C/C++ vs Java

Wstęp do programowania

Programowanie - instrukcje sterujące

Podstawy i języki programowania

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

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

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

Warsztaty dla nauczycieli

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

Języki programowania zasady ich tworzenia

Cw.12 JAVAScript w dokumentach HTML

Tablice jednowymiarowe

Informacje wstępne #include <nazwa> - derektywa procesora umożliwiająca włączenie do programu pliku o podanej nazwie. Typy danych: char, signed char

Wykład z Technologii Informacyjnych. Piotr Mika

Część 4 życie programu

Podstawy Programowania Podstawowa składnia języka C++

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

Wprowadzenie do Scilab: macierze

Metody i analiza danych

Algorytmy sortujące i wyszukujące

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

Administracja sieciowymi systemami operacyjnymi III Klasa - Linux

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

Lab 9 Podstawy Programowania

Schematy blokowe I. 1. Dostępne bloki: 2. Prosty program drukujący tekst.

MATLAB tworzenie własnych funkcji

Algorytmy i struktury danych

JAVAScript w dokumentach HTML - przypomnienie

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

Język ludzki kod maszynowy

Tablice. Monika Wrzosek (IM UG) Podstawy Programowania 96 / 119

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

Programowanie w języku C++ Agnieszka Nowak Brzezińska Laboratorium nr 2

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ów i 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: Jeśli 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żnoś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 = 4 : 0.1 : 5; 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 macierzy 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: 1. Stwórz nowy skrypt o nazwie lab1.m 2. Narysuj wykres funkcji y=x 2 dla x z przedziału -5 do 10 z krokiem 0.01 3. Znajdź największą i najmniejszą wartość zmiennej y z zadania 2 (wykorzystaj odpowiednie funkcje opisane powyżej) 4. Na nowym rysunku narysuj wykres funkcji y1=sin(x) oraz y2=cos(x) dla x z przedział -2pi do 2pi z krokiem 0.01. Jako pi możesz użyć predefiniowanej stałej o nazwie pi (- zmienna o nazwie pi=3.141592). Spraw aby obydwie krzywe były narysowane na jednym wykresie 5. Stwórz zmienną yy składającą się z dwóch kolumn odpowiednio y1, y2 6. Znajdź wartość średnią dla obydwu kolumn zmiennej yy (zadanie rozwiąż z wykorzystaniem pętli i wypisz wynik na ekranie) 7. Powtórz zadanie 6 wykorzystując odpowiednią funkcję 8. Wczytaj dane z pliku iris.data (plik dostępny pod adresem: http://mblachnik.pl/doku.php/dydaktyka/zajecia/ai_io/materialy) i dokonaj jego normalizacji (normalizacja oznacza sprowadzenie wartości każdej z kolumn do przedziału 0 1 tj. tak aby największa liczba w danej kolumnie była równa 1, a najmniejsza 0. Pozostałe liczby powinny przyjmować proporcjonalnie kolejne wartości). Innymi słowy normalizacja powoduje że wartości danej zmiennej powinny mieścić się w przedziale od 0 do 1. Aby to zrealizować posłuż się zależnością x min( x) y max( x) min( x) Gdzie: - x to wartości pojedynczej kolumny którą chcemy znormalizować, - min(x) to minimalna wartość kolumny x, - max(x) to maksymalna wartość kolumny x Do realizacji tego zadania możesz wykorzystać funkcje wykorzystane w poprzednich zadaniach np. min, max, mean Pamiętaj że zbiór Iris.data składa się z 5 kolumn i należy dokonać normalizacji każdej z nich 9. Programik realizujący normalizację zapisz w postaci osobnej funkcji i nazwij ją normalizacja 10. 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. 11. Narysuj wykres przedstawiający wymiar 3 i 4 (3 i 4 to numery kolumn) tak iż każdy wiersz (wektor) reprezentował będzie pojedynczy punkt na wykresie, przy czym wiersze(wektory) z różnych gatunków narysuj innym kolorem i zaznacz innym symbolem. 12. Stwórz funkcję która odnajduje max i min dla każdej z kolumn, a następnie zwraca wartość środkową, tj. (max+min)/2 13. Napisz algorytm sortowania liczb i posortuj każdą z kolumn tak, aby miała wartości poukładane w kolejności od największej do najmniejszej Całość zaimplementuj w oparciu o algorytm sortowania bąbelkowego https://pl.wikipedia.org/wiki/sortowanie_b%c4%85belkowe