Sygnały i systemy dynamiczne

Slides:



Advertisements
Podobne prezentacje
Funkcje matematyczne Microsoft Office 2003 Exel.
Advertisements

OBLICZENIA NUMERYCZNE
Tablice 1. Deklaracja tablicy
Język C/C++ Funkcje.
Metody numeryczne część 1. Rozwiązywanie układów równań liniowych.
PROGRAMOWANIE STRUKTURALNE
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Wprowadzenie do Mathcada
AUTOMATYZACJA OBLICZEŃ INŻYNIERSKICH
SO – LAB3 Wojciech Pieprzyca
Wykład 2 struktura programu elementy języka typy zmienne
Wyrażenia Wyrażenie w Fortranie jest poprawną syntaktycznie kombinacją zmiennych, stałych, operatorów i funkcji. Wyrażenia są jednozdaniowymi przepisami.
1 Języki i techniki programowania prowadzący dr Grzegorz Filipczyk.
Arkusz kalkulacyjny Excel
Matematyka.
AWK Zastosowania Informatyki Wykład 1 Copyright, 2003 © Adam Czajka.
Podstawy programowania
Podstawy programowania II Wykład 2: Biblioteka stdio.h Zachodniopomorska Szkoła Biznesu.
SQL – podstawowe funkcje
Dane do obliczeń.
Programowanie w języku Matlab
Wykład 2 Instrukcje sterujące
Wykład 2 Dr Aneta Polewko-Klim
© A. Jędryczkowski – 2006 r. © A. Jędryczkowski – 2006 r.
Microsoft Office Excel
TABLICE C++.
Programowanie w języku Matlab
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
ANNA BANIEWSKA SYLWIA FILUŚ
Podstawy informatyki 2013/2014
Użytkowanie i programowanie Matlaba
Metody obliczeniowe i podstawy programowania
Programowanie Matlaba
MOiPP Matlab Sortowanie Obliczenia symboliczne - Symbolic ToolBox
MOiPP Wykład 3 Matlab Przykłady prostych metod obliczeniowych.
  ELEMENTY JĘZYKA JAVA komentarze w Javie, słowa kluczowe i operatory, proste typy danych, tablice, podstawowy zestaw instrukcji.
Projektowanie stron WWW
MOiPP Matlab Przykłady metod obliczeniowych Obliczenia symboliczne
MOiPP Matlab Aproksymacja Interpolacja Inne metody obliczeniowe
Obliczenia symboliczne
PWSW Mechatronika Wykład 7 Matlab cd.
Wprowadzenie do Matlaba
Matematyka Ekonomia, sem I i II.
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Podsumowanie wiedzy MPDI2 sem.3 INFORMATYKA. tworzenie nowego pliku i katalogu, nawigacja po katalogach, listowanie zawartości katalogu, zmiana nazw,
Wykład 6 Dr Aneta Polewko-Klim
SciLab.
Pakiety numeryczne Graphical User Interface Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
SciLab.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
1. Adres względny 2. Adres bezwzględny 3. Adres mieszany.
Pakiety numeryczne Skrypty, funkcje Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Informatyka Transport Matlab c.d. Macierze cd. Wykresy graficzne
Pakiety numeryczne Operatory, instrukcje sterujące, operacje bitowe Łukasz Sztangret Katedra Informatyki Stosowanej i Modelowania.
Excel 2007 dla średniozaawansowanych Zajęcia z Prowadzący: Artur Kołos.
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Osoby prowadzące zajęcia z Informatyki (II część): Prof. Mirosław Czarnecki (W+L) Konsultacje:piątek (p. 302a)
Wykład 4 Dr Aneta Polewko-Klim Dr Aneta Polewko-Klim
Osoby prowadzące zajęcia z Informatyki (II część): Prof. Mirosław Czarnecki (W+L) Konsultacje:piątek (p. 302a)
Wykład 4 Dr Aneta Polewko-Klim
Wykład 3 Dr Aneta Polewko-Klim
Informacje ogólne.
Podstawy Informatyki.
Wykład 2 Dr Aneta Polewko-Klim
Tomasz Adamowicz Anna Kostun
Transformacja Z -podstawy
ETO w Inżynierii Chemicznej
Obliczenia w Matlabie Tablice
Zapis prezentacji:

Sygnały i systemy dynamiczne Laboratorium I 2016/17

Wprowadzenie do Matlaba – przegląd możliwości. Podstawowe operacje na sygnałach (2g) Przekształcenie Laplace’a (4g) Proste (1g) Odwrotne (1g) Zastosowanie procedur Matlaba do obliczania transformat Laplace’a (1g) Test (45min) Analiza stanów dynamicznych systemów LTI z wykorzystaniem narzędzi środowiska programistycznego Matlab. (4g) Obliczanie splotu sygnałów ciągłych i dyskretnych (2g). Transformata DFT (FFT). (2g) Widmo amplitudowo-fazowe. Programowy analizator widma. Transformacja Fouriera. (2g) Przekształcenie Z. Filtry cyfrowe (2g) Politechnika Łódzka, ul. Żeromskiego 116, 90-924 Łódź, tel. (042) 631 28 83 Zakład Elektrotechniki Teoretycznej Laboratorium Podstaw Teorii Sygnałów

3 MATLAB Dr inż.Marek Ossowski

kontakt marek.ossowski@p.lodz.pl tel. 42 6312515 (wew. PŁ 2515) 501673231 (tylko w wyj. wypadkach) strona www Zakładu Układów i Systemów Nieliniowych GP: czwartki 11-13 ZUiSN pok.14

Treść Pierwsza godzina zajęć 5 Co to jest MATLAB? Składniki programu MATLAB MATLAB Desktop Panel główny programu Macierze Liczbowe Znakowe (łańcuchowe) Wprowadzanie i eksportowanie danych. Elementarne operacje matematyczne

Cd.. 6 Programowanie z użyciem M-plików Funkcje vs. Skrypty 2. Druga godzina zajęć Programowanie z użyciem M-plików Funkcje vs. Skrypty Typy zmiennych Uruchamianie (debugowanie) funkcji Polecenia sterujące programem Elementy grafiki ekranowej Wybrane (najczęściej używane) typy danych

Czym jest MATLAB? 7 Zintegrowane środowisko programistyczne Obliczenia Wizualizacja Łatwe w obsłudze otoczenie programistyczne To również język wysokiego poziomu zawierający m.in.: Różne typy danych Funkcje wbudowane i definiowane przez użytkownika Intsrukcje wej/wyj Rozbudowaną grafikę Elementy programowania obiektowego

Składniki programu MATLAB 8 Składniki programu MATLAB High Level Development Environment Język programowania Grafika Toolboxes = Moduły narzędzi specjalistycznych Interfejs do uruchamiania aplikacji

Toolboxes? Moduły specjalistycznych narzędzi 9 Toolboxes? Moduły specjalistycznych narzędzi Zbiory funkcji rozwiązujących problemy dotyczące wielu dziedzin nauki i techniki. DSP (Digital Signal Processing) Toolbox Image Toolbox (OBRÓBKA OBRAZÓW) Wavelet Toolbox (FALKI) Neural Network Toolbox (SIECI NEURONOWE) Fuzzy Logic Toolbox (LOGIKA ROZMYTA) Control Toolbox (AUTOMATYKA) I bardzo wiele innych…

MATLAB Desktop Tools 1010 Command Window Command History Help Browser Workspace Browser Editor/Debugger

MATLAB – panel główny (Matlab 7) Edytor Pomoc Okno graficzne Obszar roboczy Historia Interpreter linia poleceń

MATLAB 5.3 – główne okno = interpreter okno pomocy (główne) Obszar roboczy

MATLAB – edytor (nowy plk)

MATLAB – edytor (otwarcie pliku)

MATLAB – okno graficzne

MATLAB – Ustawianie ścieżek

HELP (Pomoc) - help, lookfor

Format liczb Polecenie Format Przykład format jak short format short 5-cyfrowy skalowany stałoprzecinkowy 3.1416 format long 15-cyfrowy skalowany stałoprzecinkowy 3.14159265358979 format short e 5-cyfrowy skalowany zmiennoprzecinkowy 3.1416e+00 format long e 15-cyfrowy skalowany zmiennoprzecinkowy 3.141592653589793e+00 format rat ułamkowy 355/113 format hex heksadecymalny 400921fb54442d18 format short g najlepsze 5-cyfr zmienno- lub stałoprzecinkowych Format long g najlepsze 15-cyfr zmienno- lub stałoprzecinkowych

Obliczenia z linii poleceń 1919 Obliczenia z linii poleceń MATLAB jako kalkulator Stosowanie zmiennych -5/(4.8+5.32)^2 ans = -0.0488 (3+4i)*(3-4i) 25 cos(pi/2) 6.1230e-017 exp(acos(0.3)) 3.5470 a = 3; b = 3; a^b ans = 27 x = 5/2*pi; y = sin(x) y = 1 z = asin(y) z = 1.5708 średnik kasuje wyświetlanie na ekranie Jeśli nie podamy nazwy, wynik przypisany jest do “ans” () w nawiasach podajemy dane wejściowe funkcji Uwaga: Liczby zapamiętywane są w przestrzeni roboczej w formacie zmiennopozycyjnym o podwójnej precyzji!

Pomocne funkcje ogólnego zastosowania 2020 Pomocne funkcje ogólnego zastosowania whos: wyświetla zmienne i ich rozmiary clear: usuwa zmienne i funkcje z obszaru roboczego cd: zmienia bieżący katalog dir: wyświetla pliki z bieżącego katalogu pwd: informuje o nazwie bieżącego katalogu echo: polecenie echo w M-plikach format: ustawienie formatu liczb (long, short, etc.) diary (filename): zapisuje historię działań w linii poleceń clc: czyści ekran główny (poleceń)

Jak otrzymać pomoc? 2121 Polecenie help (>>help) Polecenie lookfor (>>lookfor) Help Browser (>>doc) Polecenie helpwin (>>helpwin) „Search Engine” – rozbudowana wyszukiwarka wyrażeń Dokumentacja “Matlabroot\help\pdf_doc\” Link do The MathWorks

2222 Macierze w Matlabie

Macierze (tablice) 2323 Wprowadzanie i tworzenie Indeksowanie Rozszerzenie skalarne Konkatenacja (łączenie) Usuwanie wierszy i kolumn Mnożenie macierzowe i tablicowe

Wprowadzanie tablic liczbowych 2424 Wprowadzanie tablic liczbowych a=[1 2;3 4] a = 1 2 3 4 b=[-2.8, sqrt(-7), (3+5+6)*3/4] b = -2.8000 0 + 2.6458i 10.5000 b(2,5) = 23 -2.8000 0 + 2.6458i 10.5000 0 0 0 0 0 0 23.0000 Nawiasy kwadratowe[ ] Uwaga: 1)Separator wierszy średnik (;) 2)Separator kolumn spacja LUB przecinek(,) Każde wyrażenie w MATLABIE może być wprowadzane jako element macierz Wewnętrzne operacje MATLABA są przeprowadzane wyłącznie na MACIERZACH!!!

Macierz w MATLABIE 2525 A = A (2,4) A (17) 4 10 1 6 2 8 1.2 9 4 25 7.2 Wiersze (m) 3 4 5 Kolumny (n) 1 2 3 4 5 A = 4 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 10 1 6 A (2,4) 2 8 1.2 9 4 25 7.2 5 7 1 A (17) 11 0.5 4 5 56 23 83 13 10 Macierze prostokątne: Skalar: 1x1 Wektor: mx1 1xn Macierz: mxn

Operacje na tablicach z liczbami 2626 Operacje na tablicach z liczbami Rozszerzenie w=[1 2;3 4] + 6 w = 7 8 9 10 x = 1:5 x = 1 2 3 4 5 y = 2:-0.5:0 y = 2.0000 1.5000 1.0000 0.5000 0 z = rand(2,4) z = 0.9501 0.6068 0.8913 0.4565 0.2311 0.4860 0.7621 0.0185 Tworzenie szeregu: operator (:) Użyteczny sposób generowania macierzy.

Łączenie macierzy 2727 Nawiasy kwadratowe[ ] 4*a Stosować [ ] !!!! do wklejania wybranej macierzy jako elementu innej separator wierszowy: średnik (;) Separator kolumnowy: spacja LUB przecinek (,) a=[1 2;3 4] a = 1 2 3 4 cat_a=[a, 2*a; 3*a, 4*a; 5*a, 6*a] cat_a = 1 2 2 4 3 4 6 8 3 6 4 8 9 12 12 16 5 10 6 12 15 20 18 24 Nawiasy kwadratowe[ ] 4*a UWAGA: MACIERZ wynikowa  prostokątna!!!!

Usuwanie wierszy i kolumn 2828 Usuwanie wierszy i kolumn A=[1 5 9;4 3 2.5; 0.1 10 3i+1] A = 1.0000 5.0000 9.0000 4.0000 3.0000 2.5000 0.1000 10.0000 1.0000+3.0000i A(:,2)=[] 1.0000 9.0000 4.0000 2.5000 0.1000 1.0000 + 3.0000i A(2,2)=[] ??? Indexed empty matrix assignment is not allowed. Indeksowanie pustej macierzy jest niedozwolone!

Indeksowanie tablic 2929 A = 4 10 1 6 2 8 1.2 9 4 25 7.2 5 7 1 11 0.5 1 2 3 4 5 A = 4 1 6 11 16 21 2 7 12 17 22 3 8 13 18 23 4 9 14 19 24 5 10 15 20 25 10 1 6 2 1 2 3 4 5 8 1.2 9 4 25 A(1:5,5) A(:,5) A(21:25) A(1:end,end) A(:,end) A(21:end)’ 7.2 5 7 1 11 0.5 4 5 56 A(3,1) A(3) 23 83 13 10 A(4:5,2:3) A([9 14;10 15])

Mnożenie macierzy 3030 Mnożenie TABLIC (elementów tablic) b = ones(4,3); c = a*b c = 10 10 10 26 26 26 [2x4] [4x3] [2x4]*[4x3] [2x3] a(2-gi wiersz)*b(3-cia kolumna) Mnożenie TABLIC (elementów tablic) a = [1 2 3 4; 5 6 7 8]; b = [1:4; 1:4]; c = a.*b c = 1 4 9 16 5 12 21 32 c(2,4) = a(2,4)*b(2,4)

Operacje na macierzach, funkcje macierzowe 3131 Operacje na macierzach, funkcje macierzowe zeros: tworzy macierz zerową (o samych zerach) ones: tworzy macierz o samych jedynkach eye: macierz JEDNOSTKOWA rand: generuje losowo liczby (rozkład normalny) diag: tworzy macierz diagonalną (zwraca wartości leżące na przekątnej) size: podaje wymiar macierzy fliplr: odwraca macierz z lewej na prawą stronę flipud: odwraca macierz góra-dół repmat: powiela i powiększa macierz

Funkcje operujące na macierzach 3232 Funkcje operujące na macierzach transpose (’): transpozycja rot90: obrót o 90o tril: trójkątna dolna część macierzy triu: trójkątna górna część macierzy cross: iloczyn wektorowy dot:iloczyn skalarny det: wyznacznik macierzy inv:odwrotność macierzy eig: wartości i wektory własne rank: oblicza rząd macierzy

Ćwiczenie wykładowe (5 min!) 3333 Ćwiczenie wykładowe (5 min!) Utwórz macierz A o wymiarach 2 x 4, której elementy mają wartości określone indeksami (i,j)  A(i,j)=i+j Wytnij z macierzy A dwie macierze 2x2: A1 oraz A2. A1 zawiera dwie pierwsze a A2 dwie ostatnie kolumny macierzy A. Utwórz macierz B będącą sumą macierzy A1 i A2 Oblicz wyznacznik macierzy B Oblicz odwrotność macierzy B Oblicz współczynnik uwarunkowania (cond) macierzy B Oblicz macierz C będącą: Iloczynem macierzy A1 i A2 Tablicą iloczynów odpowiednich elementów A1 i A2 Zapisz stosowne zmienne jako własny obszar roboczy UWAGA: Stosuj jedynie funkcje dostępne z linii poleceń!

3434 Operacje łańcuchowe

Tablice znakowe (Strings) 3535 Tablice znakowe (Strings) Tworzenie za pomocą pojedynczego cudzysłowu (') Każdy znak jest oddzielnym elementem macierzy (16 bitów na każdy znak) Indeksowanie jak poprzednio! str = 'Hej tam,' str = Hej tam, str2 = 'MATLAB jest super!?' str2 = MATLAB jest super str = H e e j t a m , 1x9 wektor

Łączenie łańcuchów 3636 STRVCAT char [ ] operator: Każdy wiersz o tej samej długości separator wiersza (;) Separator kolumny: spacja LUB (,) str ='Heej tam,'; str1=‘Wszyscy!!'; nowy_str=[str, ' ', str1] nowy_str = Heej tam, Wszyscy!! str2 = ‘Matlab jest cudowny'; new_str2=[new_str; str2] new_str2 = Matlab jest cudowny Wektory 1x9 1x19 1x19 Macierz 2x19 Dla łańcuchów o różnej długości: STRVCAT char new_str3 = strvcat(str, str2) new_str3 = Hej tam, Matlab jest cudowny Macierz 2x19 (uzupeł. zerami)

Macierze łańcucowe – przykładowe operacje 3737 Macierze łańcucowe – przykładowe operacje Porównanie łańcuchów strcmp: porównuje całe łańcuchy strncmp: porównuje pierwsze ‘N’znaków findstr: znajduje podłańcuch w łańcuchu Konwersje liczbowo-łańcuchowe: num2str:zamiana z liczb w znaki str2num:zamiana znaków w liczby

operacje matematyczne 3838 Elementarne operacje matematyczne

3939 Operatory logiczne Funkcje matematyczne Wielomiany

Operatory logiczne 4040 Note: 1 = TRUE 0 = FALSE = = równe > większe niż < mniejsze niż >= większe lub równe <= mniejsze lub równe ~ nie & oraz | lub isfinite(), etc. . . . all(), any() find Mass = [-2 10 NaN 30 -11 Inf 31]; each_pos = Mass>=0 each_pos = 0 1 0 1 0 1 1 all_pos = all(Mass>=0) all_pos = all_pos = any(Mass>=0) 1 pos_fin = (Mass>=0)&(isfinite(Mass)) pos_fin = 0 1 0 1 0 0 1 Note: 1 = TRUE 0 = FALSE

Funkcje elementarne 4141 abs: wartość bezwzględna sign: znak sin, cos, asin, acos…:f. trygonometryczne exp: f.wykładnicza log, log10: logarytm naturalny i dziesięttny ceil, floor: zaokrąglenie w górę fix: zaokrąglenie w dół

Funkcje elementarne cd. 4242 Funkcje elementarne cd. round: zaokrąglenie do najbliższej l.całkowitej gcd:najwększy wspólny podzielnik lcm: najmniejsza wspólna wielokrotność sqrt: pierwiastek kwadratowy real, imag:części liczby zespolonej angle: argument liczby zespolonej rem:reszta z dzielenie

Inne wybrane funkcje matematyczne 4343 Inne wybrane funkcje matematyczne max, min: największa i najmniejsza wartość w tablicy mean, median: wartość średnia i mediana std, var: odchylenie standardowe i wariancja sort: uporządkowanie elementów tablicy sum, prod: suma i iloczyn elementów trapz: całkowanie metodą trapezów diff: różniczkowanie numeryczne gradient: gradient obliczany numerycznie

Wielomiany 4444 Polynomials = wielomiany Pierwiastki (>> roots) Oblicz wartość (>> polyval) Pochodna (>> polyder) Znajduje wielomian dla danych wartości (>> polyfit) Rozkład na ułamki proste (>>residue)

Przykład 4545 polysam=[1 0 0 8]; x3+8 roots(polysam) ans = -2.0000 1.0000 + 1.7321i 1.0000 - 1.7321i polyval(polysam,[0 1 2.5 4 6.5]) 8.0000 9.0000 23.6250 72.0000 282.6250 polyder(polysam) 3 0 0 [r p k]=residue(polysam,[1 2 1]) x3+8/(x2+2x+1)=s-2+3/(s+1)+7/(s+1)^2 r = 3 7 p = -1 -1 k = 1 -2

Elementy programowania 4646 Elementy programowania

Zawartość: 4747 Koncepcja m-plików Skrypty czy m-pliki? Obszar roboczy Zmienne w MATLABIE Typy zmiennych Scope of a variable Edytor/debuger

M-plik zawierający funkcję 4848 M-plik zawierający funkcję function r = ourrank(X,tol) % rank of a matrix s = svd(X); if (nargin == 1) tol = max(size(X)) * s(1)* eps; end r = sum(s > tol); Wejście wieloargumentowe ( ) r=ourrank(rand(5),.1); function [mean,stdev] = ourstat(x) [m,n] = size(x); if m == 1 m = n; end mean = sum(x)/m; stdev = sqrt(sum(x.^2)/m – mean.^2); Wyjście o wielu argumentach [ ] [m std]=ourstat(1:9);

Struktura m-pliku funkcyjnego 4949 Struktura m-pliku funkcyjnego function y = mean (x) % MEAN= wartość średnia. % dla wektorów, MEAN(x) oblicza wartość średnią wektora. % dla macierzy, MEAN(x) wyznacza wektor % zawierający wartości śrdnie kolumn. [m,n] = size(x); if m == 1 m = n; end y = sum(x)/m; Argumenty wyj. Argumenty wej. Nazwa funkcji komentarz Kod funkcji

5050 Skrypty a funkcje Skrypty Zbiory poleceń wykonywanych tak jak wprowadzane bezpośrednio z klawiatury Zmienne zapamiętywane na bieżąco w obszarze roboczym (workspace) MATLABA Funkcje Pozwalają na tworzenie własnych funkcji Wszystkie zmienne wewnątrz funkcji są LOKALNE Informacje przekazywane przez parametry Możliwe podfunkcje

Koncepcja Workspace (Obszaru roboczego) 5151 Koncepcja Workspace (Obszaru roboczego) W dowolnej chwili sesji MATLABA użytkownik porusza się w pewnym obszarze danych i zmiennych (mamy swoją piaskownicę) Piaskownicę można modyfikować, uzupełniać, zapisywać i wczytywać Podstawowy obszar roboczy (piaskownica) dostępny jest i widziany z linii poleceń i z wnętrza skryptów Każda funkcja posiada własny obszar roboczy w przeciwieństwie do skryptów operującego w głównym obszarze roboczym

Typy zmiennych 5252 Zmienne lokalne MATLAB zasadniczo operuje na zmiennych lokalnych, dostępnych jedynie we własnym obszarze roboczym: Zmienne znikają, jeśli zamykamy lub zmieniamy obszar roboczy Skrypty nie definiują nowego obszaru roboczego – należy uważać, aby m-pliki nie zrujnowały istotnego dla całości rogramu ukladu zmiennych i danych. Funkcje operują na własnych obszarach roboczych komunikując się ze skryptami poprzez parametry Argumenty dla funkcji przekazywane są jedynie przez WARTOŚCI Każda wartość generowana w podfunkcji, aby mogła być użyta w programie, musi być do niego ponownie przekazana!

Typy zmiennych 5353 Zmienne globalne UWAGA Dostępne w wielu obszarach roboczych Muszą być jednoznacznie zadeklarowane Strategia używania zmiennych globalnych nie jest poręczna i nie jest ZALECANA UWAGA Ponieważ operacje wewnątrz funkcji są lokalne, nawet jeśli zmieniają wartości zmiennych używanych w obszarze roboczym to w rzeczywistości nie mogą ich modyfikować. Aby to osiągnąć należy: Zastosować zmienne globalne Odpowiednio skonfigurować postać wyjścia funkcji

Polecenia sterujące (1) 5454 Polecenia sterujące (1) WARUNEK if if ((attendance >= 0.90) & (grade_average >= 60)) pass = 1; end; SKŁADNIA if expression statements end if expression1 elseif expression2 else if wyrażenie polecenia end if wyrażenie1 elseif wyrażenie2 else

PĘTLA while (sprawdzanie warunku wykonania pętli na początku) 5555 Polecenia sterujące (2) PĘTLA while (sprawdzanie warunku wykonania pętli na początku) eps = 1; while (1+eps) > 1 eps = eps/2; end eps = eps*2 SKŁADNIA while expression statements end while wyrażenie polecenia end

Polecenia sterujące (3) 5656 Polecenia sterujące (3) method = 'Bilinear'; switch lower(method) %wyrażenie steujące wyborem case {'linear','bilinear'} %porównanie z wyrażeniem 1 disp('Method is linear') %polecenie case 'cubic‘ %porównanie z wyrażeniem 2 disp('Method is cubic') %polecenie Otherwise % jeśli nie ma na liście wyrażeń disp('Unknown method.') %polecenie end Method is linear  realizacja switch : SKŁADNIA switch switch_expr case case_expr statements case{case_expr1,case_expr2,case_expr3,...} ... otherwise end switch wyrażenie_sterujące case wyrażenie lub stała wyboru polecenia case{wyrażenia lub stałe wyboru,...} ... otherwise end

Polecenia sterujące (4) 5757 Polecenia sterujące (4) for: A = zeros(k,k) % zdefiniowanie wstępne macierzy for i = 1:k for j = 1:k a(i,j) = 1/(i+j -1); end SYNTAX SKŁADNIA for variable = expression statement ... end for zmienna =wyrażenie polecenie ... end

Edycja i uruchamianie M-plików 5858 Edycja i uruchamianie M-plików Edytor/Debuger Uruchamianie M-plików Typy błędów (Składniowe i wykonawcze) Stosowanie klawiatury oraz “ ; ”średnika w m-plikach Stosowanie pułapek Uruchamianie krokowe Continue, Go Until Cursor, Step, Step In, Step Out Sprawdzanie wartości zmiennych Wybór obszaru Podgląd Datatips w Edytorze/Debugerze

5959 Debugowanie Wybór obszaru Wstaw pułapki podgląd

6060 Import i export danych Stosowanie Import Wizard (wersje od 6.1...) Polecenia Save i Load save p_nazwa zapisz zmienne z obszaru w pliku o nazwie p_nazwa save p_nazwa A b x zapisz wybrane zmienne save p_nazwa –ascii zapisz dane w formacie 8-cyfrowym ACSII load p_nazwa wczytaj zmienne z pliku o nazwie p_nazwa do obszaru roboczego load p_nazwa A b x wczytaj wybrane zmienne z pliku p_nazwa load p_nazwa –ascii wczytaj dane o formacie 8-cyfrowym ASCII

Input/Output dla plików tekstowych 6161 Input/Output dla plików tekstowych Czytanie sformatowanych danych stosując format łańcucha N razy. Import i eksport danych liczbowych z plików ASCII [A1…An]=textread(filename,format,N) M = dlmread(filename,delimiter,range)

Input/Output dla plików binarnych 6262 Input/Output dla plików binarnych fopen: otwiera plik dla wej/wyj fclose:zamykanie plików fread:czyta binarne dane z plików fwrite:zapisuje binarne dane do plików fseek: ustawia znacznik początku pliku fid= fopen('mydata.bin' , 'wb'); fwrite (fid,eye(5) , 'int32'); fclose (fid); fid= fopen('mydata.bin' , 'rb'); M= fread(fid, [5 5], 'int32')

6363 Grafika

Grafika i wykresy 6464 Podstawy rysowania wykresów Edycja wykresów plot, title, xlabel, grid, legend, hold, axis Edycja wykresów Property Editor

Wykresy 2-D 6565 typ linii kolor Składnia: znacznik (marker) Przykład: plot(x1, y1, 'clm1', x2, y2, 'clm2', ...) x=[0:0.1:2*pi]; y=sin(x); z=cos(x); plot(x,y,x,z,'linewidth',2) title(‘Sample Plot','fontsize',14); xlabel('X values','fontsize',14); ylabel('Y values','fontsize',14); legend('Y data','Z data') grid on

6666 Przykładowy wykres Title Ylabel Grid Legend Xlabel

6767 Wiele wykresów Jeden rysunek (figure) zawiera jeden wykres i wiele krzywych Wymaga albo złożenia „trójek” polecenia plot albo poleceniad “hold” (patrz MATLAB help) Jeden rysunek zawierający wiele wykresów o pojedynczych krzywych Polecenie “subplot” Wiele rysunków o wielu wykresach i krzywych, Polecenie “figure” + “subplot”

Subplots  podwykresy 6868 Składnia: subplot(wiersz,kolumna,indeks) … subplot(2,2,2) ... subplot(2,2,3) subplot(2,2,4)

Polecenie “figure” 6969 Tworzy nowy rysunek i umożliwia jego edycję Przy wielu otwartych rysunkach polecenie figure(9) zapewni, że domyślnie ten rysunek będzie wyświetlał następny rysowany wykres9 the default one >> figure(9) >> plot(…) close(9) zamyka rysunek 9

Przykład wykresu 3D 7070 x = 0:0.1:2; y = 0:0.1:2; [xx, yy] = meshgrid(x,y); zz=sin(xx.^2+yy.^2); surf(xx,yy,zz) xlabel('X axes') ylabel('Y axes')

Graficzny Interfejs Użytkownika 7171 Graficzny Interfejs Użytkownika Czym jest GUI (GIU)? Rozróżnienie figure i *.fig Użycie polecenia guide Obiekty GUI

7272 Axes=osie Pola tekstowe Frames ramki Checkbox Slider= Pole wyboru suwak Edit text= Wprowad zanie tekstu Radio Buttons= pola wyboru Push Buttons= przyciski akcji

7373 Edytor elementów Właściwości GUI Rysunek końcowy

7474 Typy danych

Data Types 7575 Tablice liczbowe Tablice wielowymiarowe Struktury i komórki

Tablice wielowymiarowe 7676 Tablice wielowymiarowe Wymiar 1  wiersz. Wymiar 2  kolumna Wymiar 3  page (strona) A = pascal(4); A(:,:,2) = magic(4) A(:,:,1) = 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20 A(:,:,2) = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 A(:,:,9) = diag(ones(1,4)); 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 Page N Page 1 0 0 0 0 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 1 1 1 1 1 2 3 4 1 3 6 10 1 4 10 20

Struktury 7777 Also, Build structure arrays using the struct function. Tablice z nazwanymi zbiorami danych zwanymi polami (fields). patient.name='John Doe'; patient.billing = 127.00; patient.test= [79 75 73; 180 178 177.5; 220 210 205]; Also, Build structure arrays using the struct function. Array of structures patient(2).name='Katty Thomson'; Patient(2).billing = 100.00; Patient(2).test= [69 25 33; 120 128 177.5; 220 210 205];

Tablice komórkowe  tablice tablic 7878 Tablice komórkowe  tablice tablic A(1,1) = {[1 4 3; 0 5 8; 7 2 9]}; A(1,2) = {'Anne Smith'}; A(2,1) = {3+7i}; A(2,2) = {-pi:pi/10:pi}; {} odwołanie do komórek tablicy Funkcja celldisp  wyświetlenie zawartości