ŚRODOWISKO MATLAB WPROWADZENIE. dr inż. Dariusz Borkowski. Podstawy informatyki. (drobne) modyfikacje: dr inż. Andrzej Wetula

Podobne dokumenty
Wprowadzenie do środowiska

MATLAB - laboratorium nr 1 wektory i macierze

MATLAB ŚRODOWISKO MATLABA OPIS, PODSTAWY

Metody i analiza danych

Podstawowe operacje na macierzach

zajęcia 2 Definiowanie wektorów:

do MATLABa podstawowe operacje na macierzach WYKŁAD Piotr Ciskowski

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

WPROWADZENIE DO ŚRODOWISKA SCILAB

Matlab Składnia + podstawy programowania

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

Ćwiczenie 3: Wprowadzenie do programu Matlab

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

Wprowadzenie do Scilab: macierze

Algebra macierzy

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

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

Podstawy Automatyki ćwiczenia Cz.1. Środowisko Matlab

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

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

Obliczenia w programie MATLAB

Matlab Składnia + podstawy programowania

Wizualizacja funkcji w programie MATLAB

Programowanie w języku Matlab

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

Matlab MATrix LABoratory Mathworks Inc.

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

PODSTAWY INFORMATYKI 1 MATLAB CZ. 3

Laboratorium Komputerowego Wspomagania Analizy i Projektowania

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

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

Wykorzystanie programów komputerowych do obliczeń matematycznych

Macierze. Rozdział Działania na macierzach

Metody optymalizacji - wprowadzenie do SciLab a

O MACIERZACH I UKŁADACH RÓWNAŃ

Wprowadzenie do Scilab: macierze

Wprowadzenie do Mathcada 1

MATLAB Podstawowe polecenia

Obliczenia iteracyjne

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

Instalacja

Zakłócenia w układach elektroenergetycznych LABORATORIUM

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

1) Podstawowe obliczenia. PODSTAWY AUTOMATYKI I ROBOTYKI Laboratorium. Wykonał: Łukasz Konopacki Sala 125. Grupa: poniedziałek/p,

Elementy okna MatLab-a

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

Podstawowe operacje graficzne.

Wprowadzenie do Scilab: macierze

Zanim zaczniemy GNU Octave

Grafika w Matlabie. Wykresy 2D

1 Macierze i wyznaczniki

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Wprowadzania liczb. Aby uniknąć wprowadzania ułamka jako daty, należy poprzedzać ułamki cyfrą 0 (zero); np.: wpisać 0 1/2

Podstawowe operacje na macierzach, operacje we/wy

Przetwarzanie sygnałów

Scilab - podstawy. Wersje instalacyjne programu Scilab mogą zostać pobrane ze strony

Cw.12 JAVAScript w dokumentach HTML

Wstęp do Programowania Lista 1

04 Układy równań i rozkłady macierzy - Ćwiczenia. Przykład 1 A =

1 Programowanie w matlabie - skrypty i funkcje

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

AKADEMIA MORSKA W SZCZECINIE WI-ET / IIT / ZTT. Instrukcja do zajęc laboratoryjnych nr 1 AUTOMATYZACJA I ROBOTYZACJA PROCESÓW PRODUKCYJNYCH

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

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

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

macierze jednostkowe (identyczności) macierze diagonalne, które na przekątnej mają same

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

MATrix LABoratory. A C21 delta tvx444 omega_zero. hxx J23 aaa g4534 Fx_38

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

Temat (rozumiany jako lekcja) Propozycje środków dydaktycznych. Liczba godzin. Uwagi

Ćwiczenie 1. Wprowadzenie do programu Octave

MACIERZE. Sobiesiak Łukasz Wilczyńska Małgorzata

n, m : int; S, a, b : double. Gdy wartości sumy składowej nie można obliczyć, to przyjąć Sij = 1.03 Dla obliczenia Sij zdefiniować funkcję.


MATLAB - podstawy użytkowania

JAVAScript w dokumentach HTML (1)

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

Programy wykorzystywane do obliczeń

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

Programowanie: grafika w SciLab Slajd 1. Programowanie: grafika w SciLab

Zajęcia nr 1 (1h) Dwumian Newtona. Indukcja. Zajęcia nr 2 i 3 (4h) Trygonometria

Wprowadzenie do MS Excel

Scilab - wprowadzenie

Metody numeryczne Laboratorium 2

Obliczenia inżynierskie arkusz kalkulacyjny. Technologie informacyjne

Pętle iteracyjne i decyzyjne

WYRAŻENIA ALGEBRAICZNE

OPERACJE NA MACIERZACH DODAWANIE I ODEJMOWANIE MACIERZY

Wprowadzenie do pakietów MATLAB/GNU Octave

Ćwiczenie 3. Iteracja, proste metody obliczeniowe

Wykład 14. Elementy algebry macierzy

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

dr Mariusz Grządziel 15,29 kwietnia 2014 Przestrzeń R k R k = R R... R k razy Elementy R k wektory;

ARKUSZ KALKULACYJNY MICROSOFT EXCEL cz.2 Formuły i funkcje macierzowe, obliczenia na liczbach zespolonych, wykonywanie i formatowanie wykresów.

3 1 + i 1 i i 1 2i 2. Wyznaczyć macierze spełniające własność komutacji: [A, X] = B

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

Ekoenergetyka Matematyka 1. Wykład 3.

1. Znajdowanie miejsca zerowego funkcji metodą bisekcji.

PODSTAWY AUTOMATYKI. MATLAB - komputerowe środowisko obliczeń naukowoinżynierskich - podstawowe operacje na liczbach i macierzach.

KURS WSPOMAGAJĄCY PRZYGOTOWANIA DO MATURY Z MATEMATYKI ZDAJ MATMĘ NA MAKSA. przyjmuje wartości większe od funkcji dokładnie w przedziale

Transkrypt:

ŚRODOWISKO MATLAB WPROWADZENIE dr inż. Dariusz Borkowski (drobne) modyfikacje: dr inż. Andrzej Wetula

Przebieg III części przedmiotu - 10 zajęć = 6 laboratoriów Matlab + 2 laboratoria Simulink + 2 kolokwia. - aktywność na zajęciach jest oceniana zadania do wykonania w trakcie ćwiczeń

Co to jest MATLAB? MATLAB jest językiem wysokiego poziomu przeznaczonym do obliczeń technicznych. MatLab = Matrix Laboratory

Zastosowania MATLABa Obliczenia numeryczne Modelowanie, symulacja, budowanie prototypów Analiza danych, przetwarzanie sygnałów, wizualizacja Budowa aplikacji, w tym także z GUI i dla systemów wbudowanych (DSP, FPGA) Współpraca z aparaturą (np. karty pomiarowe, procesory sygnałowe, itp.) Obliczenia symboliczne Do różnych zastosowań wykorzystuje się dedykowane toolboxy rozszerzające możliwości podstawowego środowiska

MATLAB opis narzędzi

Podstawowe polecenia >> help nazwa_polecenia wyświetla pomoc w formacie tekstowym >> doc nazwa_polecenia wyświetla ilustrowaną pomoc w w formacie HTML w oknie pomocy >> clear all usuwa z pamięci wszystkie zmienne, stosowane zazwyczaj na początku programu >> clc czyści okno poleceń z poprzednio wyświetlanego tekstu >> close all zamyka wszystkie okna z wykresami >> clf czyści aktualne okno wykresu >> who wyświetla listę zmiennych znajdujących się w pamięci Matlaba >> whos wyświetla szczegółową listę zmiennych wraz z ich rozmiarem i typem danych Lista zmiennych jest też dostępna w zakładce Workspace okna głównego

Macierz Macierzą nazywamy prostokątną tablicę liczb, np.: Macierz jest podstawowym rodzajem danych w Matlabie. Liczby są traktowane jak macierze 1x1, a ciągi znaków jak macierze 1xN wypełnione znakami. Możliwe są operacje na macierzach liczb zespolonych.

Podstawy składni. kropka oddziela część całkowitą od ułamkowej, np: >> a = 3.1415 [ ] nawiasy prostokątne są stosowane przy definiowaniu macierzy: >> v = [ 8 2 5 ] ; średnik kończy wiersz, np. przy definiowaniu macierzy: >> M = [ 1 2 ; 3 4 ; 6 7 ] oraz zapobiega wyświetleniu wyniku z bieżącej linii: >> a = 5; ( ) nawiasy okrągłe są stosowane przy odwołaniach do wybranych elementów istniejącej macierzy: >> a = M( 3, 2 ) oraz ograniczają listę argumentów funkcji: >> sum( v, 1 ), przecinek oddziela argumenty funkcji, polecenia w jednej linii, indeksy macierzy, np: >> a = xcorr(x, y), b = six(x), M(3,2) % procent jest znakiem komentarza, znaki od % do końca linii są ignorowane Matlab rozróżnia wielkość liter! Zmienne A oraz a to dwie różne zmienne.

Tworzenie macierzy i wektorów zmienne traktowane są jak macierze o określonych wymiarach, czyli ilości wierszy i kolumn; liczby wpisujemy wierszami, wiersze macierzy oddzielamy średnikiem: >> Macierz = [1 2 3 ; 4 5 6 ; 7 8 9] >> WektorPoziomy = [1 2 3] >> WektorPionowy = [1; 2; 3] pojedyncza liczba (skalar) - jest macierzą o wymiarach 1x1. >> Liczba = 6 oznacza tyle samo co >> Liczba(1,1)=6 każdy element macierzy może być określany za pomocą jego współrzędnych w macierzy, czyli indeksów, np.: >> V(1,3) = 7 powoduje, że pierwsze dwa nieokreślone elementy wektora V będą wypełnione zerami czyli V = [0 0 7] elementy macierzy indeksowane są od 1 (inaczej niż w języku C). Indeksy muszą być całkowite domyślnie, gdy definiujemy nową zmienną bez części ułamkowej, może być ona użyta jako indeks wektora lub macierzy (nie musimy deklarować typu całkowitego): >> k = 2; % definicja indeksu >> a( k ) = 4 daje w wyniku a = [ 0 4 ]

Indeksowanie elementów Operator : dwukropek, służy do tworzenia ciągów arytmetycznych, np: >> v = 2 : 6 zwróci liczby od 2 do 6 czyli v = [2 3 4 5 6] >> v = 3 : 1.5 : 8 zwróci liczby od 3 do 8 ze skokiem 1.5 v = [3.0 4.5 6.0 7.5] >> v = 8 : -3 : 0 zwróci wektor malejących liczb ze skokiem -3 czyli v = [8 5 2] Inne zastosowanie operatora : to wskazywanie elementów macierzy i wektorów np: >> A = [ 4 8 1 7 3 0 5 ] ; >> B = A( 2 : 4 ) daje w wyniku wektor B = [8 1 7] Sam operator : oznacza też wszystkie elementy kolumny (lub wiersza) macierzy, np: >> M = [ 1 2 ; 3 4 ] ; >> v = M( :, 2 ) oznacza tyle co >> v = M( 1:2, 2 ) lub >> v = M( 1:end, 2 ) i kopiuje drugą kolumnę macierzy M do wektora v dając v = [ 2 ; 4 ] Operator end służy do odwołania się do ostatniego elementu wektora np: >> B = A( 5 : end ) daje B = [ 3 0 5 ] >> B = A( end : -3 : 1 ) daje B = [ 5 7 4 ] Wybór dowolny wielu elementów macierzy (z możliwością powtarzania) wygląda tak: >> B = A([ 7 1 2 1 ]) daje B = [ 5 4 8 4 ] lub >> B = M(2,[1 1 2]) daje B = [ 3 3 4 ] Polecenie size( ) zwraca rozmiar zmiennej, np: >> v = [ 1 ; 2 ; 3 ]; size(v) zwraca ans = [ 3 1 ] Uwaga!!! łatwo pomylić zapis v(1:3), który oznacza pierwsze 3 elementy wektora v z zapisem v(1,3), który odwołuje się do 1 wiersza i 3 kolumny macierzy v oraz z v(1;3), który jest błędny

Zadanie 1 (czas 25 min) =[ 2 1 2 3 9] 0 a) utwórz macierz M 4 5 6 oraz wektor 4 7 8 v=[ 0] 1 b) utwórz macierz A przez skopiowanie do niej fragmentu macierzy M zawierającego 2 i 3 wiersz oraz kolumny od 1 do 2 macierzy M c) skopiuj 3 ostatnie elementy wektora v w miejsce ostatniego wiersza macierzy M d) utwórz nowy wektor x poprzez skopiowanie do niego co drugiego elementu wektora v od końca (czyli w odwrotnej kolejności), wykorzystaj operator end e) utwórz nowy poziomy wektor y poprzez skopiowanie do niego 1, 2 i 5 elementu wektora v f) skopiuj ostatnią kolumnę macierzy M do wektora v (jaki jest wynikowy rozmiar wektora v?)

Operacje macierzowe Operator Opis + dodawanie, np. A + A - odejmowanie * mnożenie, np. A * A (mnożenie macierzy nie jest przemienne) / dzielenie \ lewostronne dzielenie macierzy stosowane w rozwiązywaniu układów równań liniowych (także nadokreślonych) typu A x = B, gdzie A, B to macierze, x to niewiadoma, rozwiązanie x = A \ B ^ potęgowanie, np. x^3 (x do sześcianu) lub A^0.5 (pierwiastek z A) ' apostrof transpozycja macierzy czyli zamiana wierszy z kolumnami, np. B = A'.*./.^ kropka przed operatorem powoduje wykonanie operacji dla kolejnych elementów macierzy lub wektora, np.: x.^2 każdy element x do kwadratu, x.*y mnoży elementy x i y

Łączenie macierzy łączenie w poziomie (kolumny) >> C = [ A, B ] A B A B łączenie w pionie (wiersze) >> F = [ D ; E ] D E D E dopisywanie liczb na koniec wektora >>v = [v, a] v a v a Uwaga! Dopisywanie liczb na końcu długich wektorów (macierzy) odbywa się przez ich kopiowanie w pamięci przez co może być bardzo powolne i może wystąpić brak pamięci!

Usuwanie elementów macierzy usuwanie elementów z macierzy jest równoznaczne z przypisaniem na ich miejsce elementu pustego [ ] w miejscu usuwanego elementu nie będzie nic, a zatem macierz (wektor) zmniejszy swój rozmiar, np. dla wektora >> w = [1 2 3 4 5]; >> w(3) = [ ] usuwa trzeci element wektora i daje w wyniku w = [1 2 4 5] a w przypadku macierzy >> M = [ 1 2 ; 3 4 ]; >> M(:,2) = [ ] usuwa 2 kolumnę i daje M = [ 1 ; 3 ] lub >> M = [ 1 2 ; 3 4 ; 5 6 ; 7 8 ]; >> M([1 3],:) = [ ] usuwa wiersze 1 i 3 i daje M = [ 3, 4 ; 7, 8 ]

Zadanie 2 (czas 15 min) a) utwórz zmienne: A=[ 1 2 3 4] B=[ 2 2 =[ 2] 1 2 3 M 4 5 6 2 7 8 9] x=[ 1 2 3] =[ 3 3] y 3 b) wykonaj operacje: A*B, B*A, A*A, A.*A i uzasadnij wyniki c) spróbuj wykonać: A*M, x*y, A+M, A+5 i wyjaśnij problemy d) wykonaj na 3 możliwe sposoby mnożenie wektorów x oraz y (zastosuj operatory transpozycji i mnożenia pojedynczych elementów) e) pokaż 2 sposoby mnożenia wektora x z macierzą M f) wykonaj iloczyn trzech elementów: wektora x, macierzy M i wektora y g) rozwiąż układ równań M z = y gdzie z jest niewiadomą, którą trzeba wyznaczyć (wykorzystaj operator dzielenia lewostronnego backslash) h) tą samą metodą jak wyżej rozwiąż nadokreślony układ równań (rozwiązanie wymaga pionowego łączenia macierzy) [ M M ] z= [ x y ]

Tworzenie macierzy ones (n,m) tworzy macierz jedynek o wymiarach n wierszy m kolumn zeros(n,m) tworzy macierz zer o wymiarach n wierszy m kolumn eye(n) macierz jednostkowa I czyli kwadratowa wypełniona zerami za wyjątkiem przekątnej głównej wypełnionej jedynkami rand(n,m) macierz wypełniona liczbami pseudolosowymi z przedziału od 0 do 1 (generator o rozkładzie równomiernym) randn(n,m) macierz wypełniona liczbami pseudolosowymi o rozkładzie normalnym diag(v) tworzy macierzy diagonalną, która na przekątnej będzie miała elementy wektora v blkdiag(a,b,c,...) tworzy macierzy blokowo-diagonalną, która na przekątnej będzie miała macierze A, B, C, a pozostałe elementy zerowe linspace(a,b,n) zwraca N równomiernie rozłożonych liczb w zakresie od a do b logspace(a,b,n) zwraca N logarytmicznie-równomiernie rozłożonych liczb z zakresu od 10^a do 10^b, np. >> L = logspace(-2,2,5) daje L = [ 0.01 0.1 1 10 100 ] diag(a) zwraca wektor elementów przekątnej macierzy kwadratowej A

Operacje na macierzach det(a) oblicza wyznacznik macierzy kwadratowej A inv(a) oblicza macierz odwrotną do macierzy kwadratowej A czyli oblicza A -1 fliplr(a) odwraca macierz lub wektor poziomy z lewej na prawą (zamienia kolejność elementów lewo-prawo) czyli >> fliplr([1 2 3]) daje [3 2 1] flipud(a) odwraca macierz lub wektor pionowy z gór na dół (zamienia kolejność elementów góra-dół) rot90(a) obraca macierz o 90 stopni, przeciwnie do kierunku wskazówek zegara reshape(a,m,n) zmienia rozmiar macierzy A na m wierszy i n kolumn, układając w niej element wzięte kolejno (wierszami) z macierzy A, iloczyn n*m musi być równy ilości elementów macierzy A, np.: >> A = [ 1 2 3 ; 4 5 6 ] tworzy macierz o 2 wierszach i 3 kolumnach >> B = reshape(a, 1, 6) daje wektor (czyli macierz 1x6) B = [ 1 2 3 4 5 6 ] size( ) zwraca rozmiar macierzy, np: >> size( [1 2 3; 4 5 6] ) zwraca liczbę wierszy i kolumn ans = [ 2 3 ] >> size( [1 2 3; 4 5 6],2) zwraca liczbę kolumn macierzy (drugi wymiar) ans = 3 length( ) zwraca długość wektora lub największy wymiar macierzy, np: >> length( [1 2; 3 4; 5 6] ) zwraca liczbę wierszy i kolumn ans = 3

Operacje na elementach sum() sumowanie elementów macierzy >> sum(a) sumowanie kolumn (lub elementów dowolnego wektora) >> sum(a,k) sumowanie po k-tym wymiarze macierzy, np. wierszy gdy k = 2 >> sum(sum(a)) suma wszystkich elementów macierzy dwuwymiarowej max(), min() wyznaczenie największego (najmniejszego) elementu, np: >> max(max(a)) znajduje najpierw wektor poziomy zawierający maksima z kolumn macierzy A, a następnie znajduje największe z nich operatory ==, >, < >=, <= czyli operacje porównania wartości elementów >> A > B zwraca 1 dla elementów, dla których spełniono A(n,m) > B(n,m) oraz 0 dla pozostałych >> A == B jw. tylko sprawdza równość elementów >> (A > B) I (A == B) oznacza to to samo co >> A >= B find() wyszukiwanie elementów spełniających warunek logiczny >> k = find(a > 5) zwraca indeksy elementów macierzy większych od 5 Uwaga! domyślnie find zwraca tzw. liniowe indeksy (kolumnami od lewej do prawej), nie zaś współrzędne elementów w postaci wierszy i kolumn, np. >> k = find( [ 7 2 0 ; 9 4 8 ] > 5 ) daje indeksy k = [ 1 2 6 ] >> [n, m] = find([1 2; 3 4] > 2) zwraca numery wierszy i kolumn n = [ 2 ; 2 ] m = [ 1 ; 2 ]

Zadanie 3 (czas 15 min) a) utwórz macierz M =[ 1 2 3 4 5 6 7 8 9] b) wyznacz cztery sumy: po wierszach, po kolumnach, po elementach na obu przekątnych (wykorzystaj funkcję diag() oraz...) macierzy M c) oblicz wyznacznik i odwrotność macierzy M d) wygeneruj macierz o R rozmiarze 4x7 wartości pseudolosowych z zakresu od 0 do 10 (rozkład równomierny polecenie rand() i mnożenie wyniku) e) obróć wygenerowaną macierz R o 90 stopni, a następnie usuń z niej pierwsze dwa wiersze f) znajdź w wynikowej macierzy z punktu e) elementy większe od 7 i posumuj je (wykorzystaj funkcje find() i sum()) g) oblicz najmniejszą wartość z całej macierzy (funkcja min())

Funkcje matematyczne, stałe MATLAB udostępnia baaaaaaardzo wiele funkcji matematycznych: max(), min(), sqrt(), exp(), sin(), tan(), acos(), log(), log10(), log2(), abs(), angle(), real(), imag(), conj(), round(), fix(), floor(), ceil(), mean(), std(), var(), inv().. oraz wiele stałych: pi - 3.14159265... realmin - najmniejsza liczba zmiennoprzecinkowa, realmax - największa liczba zmiennoprzecinkowa Inf - Nieskończoność NaN - Not-a-Number eps - dokładność reprezentacji numerycznej j, i - operator części urojonej czyli zastosowanie ich jest intuicyjne, np: >> a = pi * log( 71 / 21 ) + 2; 1 dużym ułatwieniem w Matlabie jest fakt, że większość funkcji może operować na argumentach wektorowych, co pozwala uniknąć tworzenia zbędnych pętli, np: >> t = 0 : 0.001 : 1; % generujemy wektor czasu >> w = 2 * pi * 50; % określamy pulsację sygnału (skalar) >> x = sin( w * t ); % jednym poleceniem, bez pętli, generujemy cały wektor liczb!

Generowanie sygnałów sygnały i funkcje jednowymiarowe są zapisywane w postaci wektorów, np. generowanie sygnału losowego >> szum = randn(1,1000); gdy tworzymy sygnał będący funkcją czasu, warto najpierw przygotować wektor chwil czasowych, w których będą określone wartości sygnału >> czas = 0:0.001:1; lub bardziej precyzyjnie określając ilość elementów i odstęp czasowy >> N = 200, Ts = 0.005, czas = (0:N-1)*Ts; wtedy możemy wygenerować sygnał jako funkcję czasu >> f = 2, sygnal1 = 10 * sin( 2 * pi * f * czas ); wektory sygnałów można łatwo łączyć, np. dodawanie sygnałów >> sygnal2 = 2 * cos( 2 * pi * 3 * f * czas ); >> sygnal3 = sygnal1 + sygnal2; lub mnożenie sygnałów (modulacja) >> sygnal4 = sygnal1.* exp( czas / 0.4 ); % drgania tłumione można też łatwo dodać do sygnału szum o odpowiednim rozmiarze >> sygnal5 = sygnal4 + 2 * randn( size(sygnal4) );

Wykresy 2D plot() podstawowa funkcja do rysowania wykresów 1D: >> fi = linspace(0,2*pi,1000); % generuje kąty w radianach >> plot( fi, sin(fi) ) % rysuje sinus w funkcji zmiennej fi title() dodaje tytuł wykresu, np: >> title('nazwa wykresu') legend() dodaje legendę, np: >> legend('linia1','linia2') xlabel(), ylabel() dodają opisy osi wykresu, np: >> xlabel( nazwa Osi X ) axis() ustawia widoczny obszar wykresu (zoom), np: >> axis([0 10-3 3]) ustawia zakres osi X od 0 do 10 i osi Y od -3 do 3 Styl linii i opcje: 'red' 'green' 'blue',... kolory wykresu (są też skróty: 'r' 'g' 'b' 'c' 'm' 'y' 'k'): >> plot (x,y, red ) rysuje linię czerwoną, a >> plot(x,y,'k') rysuje linię czarną '-' '--' '.-' ':' styl wykresu (linia ciągła, przerywana, kropka-kreska, kropki), np: >> plot(x,y, g-- ) linia zielona przerywana '.' '+' 'o' 'x'... styl znaczników (kropki, plusy, kółka, iksy, itd. patrz help) >> plot(x,y, gx- ) linia zielona ciągła ze znakami x w punktach wykresu 'linewidth' grubość linii: >> plot(x,y, linewidth,5) rysuje linię grubości 5 pkt. 'color' dowolny kolor wykresu: >> plot(x,y,'color',[1 0.8 0]) rysuje linię o składowych R=100%, G = 80%, B = 0%

Wielokrotne wykresy 2D rysowanie kilku wykresów naraz, na przykładzie sygnałów z poprzedniego slajdu: >> figure(2) % otwiera nowe lub wybiera drugie okno wykresu >> plot(czas, sygnal5, 'g-') % rysuje sygnal5, zielony ciągły >> hold on % przytrzymuje wykres >> plot(czas, sygnal4, 'k--','linewidth',3) % rysuje sygnal4, czarny przerywany gruby >> plot(czas, sygnal1 + sygnal2, 'r.-') % rysuje sumę sygnalow >> legend('sin. tlum. + szum','sin. tlum.','suma harm.') >> hold off % zwalnia wykres >> title('sygnaly') % tytul >> xlabel('czas [s]') % opisy osi X >> ylabel('wartosc') % opisy osi Y >> box on % rysuje ramke wokół >> grid on % rysuje siatke można też kilka wykresów otrzymać stosując pojedyncze wywołanie plot(): >> x1 = 0:0.01:2*pi; x2 = x1, x3 = x1; >> y1 = sin(x1); y2 = cos(x2); >> y3 = y1 + y2; >> plot(x1,y1,'r',x2, y2, 'g', x3, y3, 'b')

Zadanie 4 (czas 15 min) a) wykreśl funkcję y = x 3 1 czerwoną kropkowaną linią grubości 3 dla 5 x 2 15 x 15, przy czym skok zmiennej x ma wynosić 0.2 b) otwórz nowe okno wykresu i wykreśl w nim na jednym wykresie funkcje: cos(x), dla x w zakresie od 0 do 2*pi ze skokiem 0.01*pi, niebieską linią ciągłą, ze znacznikami '+' sin(x), dla x w zakresie od pi do 3*pi ze skokiem 0.25*pi, zieloną linią kropkowaną ze znacznikami 'o' c) dodaj legendę, tytuł i opisy (dowolne) osi X i Y d) włącz siatkę e) ustaw zakres (zoom) osi Y na -2 do 2 oraz osi X od pi do 2*pi