Počítače a programování 2 pro obor EST BPC2E PŘEDNÁŠKA 8

Slides:



Advertisements
Podobné prezentace
Základy teorie řízení 2010.
Advertisements

ŘEŠENÍ ÚLOH V EXCELU.
Počítačové modelování dynamických systémů
ŘÍDÍCÍ STRUKTURY - PODMÍNKY
Počítače a programování 1 Přednáška 13 Jiří Šebesta.
MATLAB® ( speciální 2D grafy polar, compass, feather,
Dynamické dokumenty na straně klienta Informatika pro ekonomy II.
Mgr. Vlastislav Kučera přednáška č. 5.  Seznamy  CSS – vlastnosti seznamů ◦ list-style-type, list-style-image, list-style-position  Tabulky  CSS –
MATLAB LEKCE 7.
Příkazy Přednáška č. 4. Příkazy (statements)  Příkaz – dílčí krok programu (část kódu – zpravidla jeden řádek)  Program – posloupnost příkazů  Příkazy.
Algoritmy I Cvičení č. 5.
MATLAB.
Příklady z Matlabu (6) Příklady na 2D-grafy.
If-else, do-while, switch, operátory
Modelování v Matlabu procvičení katedra elektrotechniky a automatizace
Kovoprog – geometrické prvky, modifikace a kontury frézování
Programování PA - 2.
Materiály k přednášce Úvod do programování Ondřej Čepek.
MATLAB® ( část 3 - scripty).
MATLAB® ( Funkce v Matlabu ).
Informatika I 3. přednáška
Základy teorie řízení Frekvenční charakteristika
OSNOVA: a) Řetězce v C b) Funkce stdio.h pro řetězce c) Funkce string.h pro řetězce d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
TMF045 letní semestr 2005/2006 II Časová propagace vlnové funkce na mřížce I. (práce s momentovou reprezentací) (Lekce II)
MATEMATIKA I.
Jemný úvod do MATLABu © Leonard Walletzký, ESF MU, 2000.
MATLAB LEKCE 6.
Cvičení.
OSNOVA: a)Programování se soubory b)Záloha databáze v souboru c) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování.
OSNOVA: a) Úvod do OOPb) Třídy bez metod c) Třídy s metodamid) Konstruktory a destruktory e) Metody constf) Knihovní třídy g) Třídy ve tříděh) Přetížení.
2 CYKLUS S PEVNÝM POČTEM OPAKOVÁNÍ Podle řídící proměnné proveď n-krát příkaz P1.
OPAKOVÁNÍ VYPOČÍTEJTE IMPEDANCI SERIOVÉHO SPOJENÍ REZISTORU O ODPORU R= 10 Ω, INDUKTORU O VLASTNÍ INDUKČNOSTI L= 200 mh A KAPACITORU O KAPACITĚ C=220.
OSNOVA: a) Přetížení členských funkcí b) Dědičnost tříd Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST BPC2E.
MATLAB® ( část 6).
Aplikační počítačové prostředky X15APP MATLAB Katedra elektroenergetiky, Fakulta elektrotechniky ČVUT, Technická 2, Praha 6 Ing. Zbyněk Brettschneider.
OSNOVA: a) Příkazy pro cykly II. b) Příkazy pro řízení přenosu c) Příkazy – příklad d) Řetězce v C e) Funkce “stdio.h“ pro řetězce f) Funkce “string.h“
OSNOVA: a) Příkazy pro větvení b) Příkazy pro cykly c) Příkazy pro řízení přenosu d) Příklad Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
MATLAB® ( část 3 – 2D grafy).
Statistické výpočty v MATLABu
OSNOVA: a)Funkce – úvod b) Hlavičky funkcí c) Rekurze funkcí d)Knihovny funkcí e)Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače.
A1PRG - Programování – Seminář Ing. Michal Řízení běhu programu 5 Verze
Počítače a programování 2 pro obor EST KPC2E TUTORIÁL 4
Počítače a programování 1 7.přednáška. Základy Pole ve třídách a metodách Pole Arrays.
Aplikační počítačové prostředky X15APP MATLAB cvičení 3 Ing. Ladislav Prskavec
OSNOVA: a) Algoritmy třídění b) Třídění dynamických záznamů Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro obor EST.
Práce s polynomy v Matlabu
MATLAB® ( část 2b – mnohočleny).
OSNOVA: a) Ukazatel b) Pole a ukazatel c) Pole ukazatelů d) Příklady Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 1 pro.
ZÁKLADNÍ POJMY. ZDROJOVÝ TEXT PROGRAMU Tvoří: klíčová slova komentáře identifikátory.
Aplikační počítačové prostředky X15APP MATLAB cvičení 4
14. června 2004Michal Ševčenko Architektura softwarového systému DYNAST Michal Ševčenko VIC ČVUT.
Napište funkci – jmenuje se „prubehy“ (M-file), která spočte průběhy 2 funkcí y1 = cos x y2 = (cos x + sin 2x ) / 2 Funkce bude mít vstupní parametr x.
Vytvořte funkci (m-file) jménem vypocet, kde jako vstupní parametry budou vektory x a y a výstupním parametrem funkce bude Z. V těle funkce spočtěte funkci.
ROOT
OSNOVA: a)3D grafické výstupy – doplnění b)Práce se soubory Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně Počítače a programování 2 pro obor EST.
Počítače a programování 2 pro obor EST BPC2E PŘEDNÁŠKA 11
Práce pro profesionály Cvičíme se v MATLABu © Leonard Walletzký, ESF MU, 2003.
Programování v MATLABu © Leonard Walletzký, ESF MU, 2000.
Grafické možnosti MATLABu © Leonard Walletzký, 2003
Než začneme programovat Co lze v MALATBu dělat, aniž musíme napsat program. © Leonard Walletzký, ESF MU, 2000.
Grafické systémy II. Ing. Tomáš Neumann Interní doktorand kat. 340 Vizualizace, tvorba animací.
Programování ENUM, SWITCH,pole jednorozměrná a vícerozměrná, deklarace, inicializace, kopírování, porovnání Erik Král.
KIV/ZD cvičení 4 Tomáš Potužák.
Algoritmizace a programování
Jméno Příjmení, další jména Ústav konstruování
Příkazy cyklu (1) Umožňují vícekrát (nebo ani jednou) pro-vést určitý příkaz Jazyk C rozlišuje příkaz cyklu: s podmínkou na začátku: obecný tvar: while.
Opakování základních příkazů a syntaxí v programovacím jazyce Pascal
Cyklus for (1) Obecný tvar: for (výraz1; výraz2; výraz3) příkaz
KMT/DIZ2 CELÁ ČÍSLA (možnosti jejich zavedení, významy znaménka "-", porovnávání celých čísel, operace s celými čísly ) konstrukce množiny celých čísel.
Kinematika hmotný bod: těleso s nekonečně malými rozměry, ale nenulovou hmotností, tj. žádné otáčení, žádná deformace atd. = bodová hmotnost popis pohybu.
Transkript prezentace:

Počítače a programování 2 pro obor EST BPC2E PŘEDNÁŠKA 8 OSNOVA: 2D grafické výstupy – doplnění Příkazy Matlabu 3D grafické výstupy Jiří Šebesta Ústav radioelektroniky, FEKT VUT v Brně

2D grafické výstupy – doplnění (1/13) Graf funkce při proměnné vyskytující se ve výrazu několikrát Operaci je nutné prováděl prvek po prvku, tj. např. vynásobit jednotlivé elementy dvou vektorů (může být i tentýž vektor) – pro operace násobení, dělení a mocnina je nutné použít tečkovou notaci: např. y = x·sin(x) musí být zapsáno do formy y = x.*sin(x) x = -1:0.05:1; y = x.*sin(x); figure() plot(x, y, 'r', 'LineWidth', 2) title('Function y = x·sin(x)') xlabel('x') ylabel('y') grid on Příklad: BPC2E_Ex119.m

2D grafické výstupy – doplnění (2/13) Funkce pro elementární zobrazení funkční závislosti popsané textovým řetězcem string v rozsahu proměné <lo, hi>: ezplot(string, [lo hi]) V řetězci se předpokládá jako proměnná symbol x figure() ezplot('x*sin(x)', [-1 1]) title('Function y = x·sin(x)') xlabel('x') ylabel('y') grid on Příklad: BPC2E_Ex120.m

2D grafické výstupy – doplnění (3/13) Funkce plot() je základní funkcí pro 2D grafy, odvozenými funkcemi jsou funkce, které kreslí grafy s logaritmicky dělenými osami: semilogy() – y-ová osa má logaritmické dělení semilogx() – x-ová osa má logaritmické dělení loglog() – obě osy mají logaritmické dělení x = 0.01:0.01:10; y = log(x).*log10(x); figure(1) semilogy(x, y, 'r', 'LineWidth', 3) title('Function y = ln(x) · log(x)') xlabel('x') ylabel('y') grid on

2D grafické výstupy – doplnění (4/13) figure(2) semilogx(x, y, 'r', 'LineWidth', 3) title('Function y = ln(x) · log(x)') xlabel('x') ylabel('y') grid on figure(3) loglog(x, y, 'r', 'LineWidth', 3) Příklad: BPC2E_Ex121.m

2D grafické výstupy – doplnění (5/13) Funkce scatter() vykreslí 2D bodový graf: scatter(x, y, size, shape) Vykreslí graf funkce x = f(y) s body o velikosti size (plocha pro bod v pixelech) a tvaru bodu shape. Vlastností 'filled' lze definovat plný bod. Argument ve funkci title obsahuje znaky horního indexu (^a = a bude jako horní index) x = 0:1:10; y = 2*x.^(1/3); figure() scatter(x, y, 100, 's','filled') title('Function y = 2x^1^/^3') xlabel('x') ylabel('y') grid on Příklad: BPC2E_Ex122.m

2D grafické výstupy – doplnění (6/13) Funkce stem() vykreslí 2D diskrétní graf: stem(x, y, properties) x = -4*pi:0.25*pi:4*pi; y1 = cos(x); y2 = sin(x)./x; figure() stem(x,y1); title('Function y = cos(x)') xlabel('x') ylabel('y') grid on stem(x,y2,'filled',':','LineWidth',2); title('Function y = sin(x)/x') Příklad: BPC2E_Ex123.m

2D grafické výstupy – doplnění (7/13) Funkce plotyy() vykreslí 2D graf s různým rozsahem v y-ové ose, vykreslí se dvě měřítka na levé a pravé straně plotyy(x1, y1, x2, y2, style) Vykreslí grafy funkcí x1 = f(y1) a x2 = f(y2) ve stylu style x = 0.01:0.01:10; y1 = log(x).*sin(3*x); y2 = (x.^2).*cos(2*x); figure() plotyy(x, y1, x, y2, 'plot') title('Functions ln(x)·sin(3x) and x^2·cos(2x)') xlabel('x') ylabel('y') grid on Příklad: BPC2E_Ex124.m

2D grafické výstupy – doplnění (8/13) Parametrický graf s definicí stejných měřítek na obou osách pomocí: axis equal t = 0:0.1:2*pi; x = 2*t.*cos(t); y = 3*sin(t); figure() plot(x,y,'r','LineWidth',3) xlabel('x') ylabel('y') axis equal grid on Příklad: BPC2E_Ex125.m

2D grafické výstupy – doplnění (9/13) Elementární vykreslení parametrického grafu pomocí funkce ezplot()– definice spirály figure() ezplot('x*cos(x)','x*sin(x)',[0 5*pi]) xlabel('x') ylabel('y') grid on Příklad: BPC2E_Ex126.m

2D grafické výstupy – dopl. (10/13) Generování náhodných čísel rovnoměrné rozdělení rand(size_of_matrix)v rozsahu 0 až 1 do matice o rozměru size_of_matrix normální rozdělení randn(size_of_matrix) pro střední hodnotu 0 a směrodatnou odchylku 1 do matice o rozměru size_of_matrix

2D grafické výstupy – dopl. (11/13) Tisk histogramu: hist(X, bins) vykreslí histogram vektoru X do bins intervalů, je-li X matice separátně se vykreslí histogram pro jednotlivé sloupce matice X (různou barvou) % uniform distribution lo = 100; hi = 200; u = lo + (hi-lo)*rand(10000,1); figure() plot(u(1:50)) hist(u,20)

2D grafické výstupy – dopl. (12/13) % normal distribution m = 4; sd = 2; n = m + sd*randn(10000,1); figure() plot(n(1:50)) hist(n,40) Příklad: BPC2E_Ex127.m

2D grafické výstupy – dopl. (13/13) Funkce polar() vykreslí 2D graf v polárních souřadnicích, nepovoluje další parametry kromě definice řetězcem s pro vizuální podobu čáry a bodu polar(x, y, s) x = 0:.01:2*pi; y = 1+sin(5*x).*cos(3*x); figure() polar(x,y,'r') title('Polar graph') Příklad: BPC2E_Ex128.m

Příkazy Matlabu (1/5) Příkazy v Matlabu mají prakticky shodný význam jako v ANSI-C. Na rozdíl od ANSI-C, je příkazový blok definován složenými závorkami, je v Matlabu uvozen klíčovým slovem příkazu (+ definice, např. testovací podmínka) a ukončen klíčovým slovem end na samostatných řádcích. Např. konstrukce for cyklu v ANSI-C v Matlabu int m, a = 1; for(m = 1; m <= 10; m++) { a *= m; } a = 1 for m = 1:10 a = a * m; end V Matlabu se nedefinuje typ proměnné (všechny jsou matice) V Matlabu nelze použít zkrácený operátor, např. *= nebo += apod.

Příkazy Matlabu (2/5) Příkazy pro větvení: if – elseif – else – end if test_expr_1 statements_1 elseif test_expr_2 statements_2 else statements_3 end Relační operátory v podmínkách: < > <= >= == ~= Operátory < > <= >= porovnávají pouze reálnou část operandů Operátory pro slučování podmínek: && (a) || (nebo) Negace: ~

switch – case – otherwise Příkazy Matlabu (3/5) switch – case – otherwise switch switch_expr case case_expr_1 statement_1, …, statement_5 case {case_expr_2, case_expr_3, case_expr_4, …} statement_6, …, statement_13 otherwise statement_14, …, statement_21 end Pozor!!! Na rozdíl od ANSI-C po vykonání příkazů pro daný case je přepínač automaticky opuštěn (v C musí být příkaz break)

for (pevný počet cyklů) Příkazy Matlabu (4/5) Příkazy pro cykly for (pevný počet cyklů) for index = init:step:end statements_1 end Na rozdíl od ANCI-C je inicia-li-zace (init), pod-mínka (end) i ak-tualizace (step) vždy vztažena k použitému indexu (index) for - vnořené cykly for index_s=init_s:step_s:end_s statements_s_1 for index_n=init_n:step_n:end_n statements_n end statements_s_2

Příkazy Matlabu (5/5) while while test_expr statements end Příkazy statements jsou vykonány pokud je splněna podmínka test_expr, resp. reálná část výsledku test_expr je nenulová. >> a = 8; >> b = 9; >> a < b ans = 1 >> a > b Cyklus do – while není v Matalbu implementován

3D grafické výstupy (1/10) Definice pohledu na graf: view() view(az, el) se dvěma parametry definuje pohled na graf podle (úhly jsou uvažovány ve stupních): view(x, y, z) se třemi parametry definuje pohled na graf od bodu [x, y , z], velikost vektoru je bez významu

3D grafické výstupy (2/10) plot3 vykreslí 3D graf plot3(X, Y, Z, s) kde X, Y, Z jsou vektory shodného rozměru definující souřadnice bodů grafu v osách x, y, z s je řetězec pro vizuální podobu čáry a bodu, stejné jako u funkce plot() Pro finální podobu grafu se použijí stejné funkce jako u 2D funkce plot() Navíc popis osy z: zlabel()

3D grafické výstupy (3/10) Parametrický 3D graf - šroubovice t=0:0.1:8*pi; x=cos(t); y=sin(t); z=t; figure() plot3(x,y,z,'r','LineWidth',2) grid on title('x=cos(t), y=sin(t), z=t) xlabel('x') ylabel('y') zlabel('z') view(135, 25) Příklad: BPC2E_Ex129.m

3D grafické výstupy (4/10) meshgird Pro definici 3D funkce a kreslení povrchových a síťových 3D grafů je nutno definovat matice proměnných (např. pro osy x a y) [x, y] = meshgrid(od : krok : do) definuje matice x a y s obsahem podle následujícího příkladu: >> [x,y] = meshgrid(-3:2:3) x = -3 -1 1 3 y = -3 -3 -3 -3 -1 -1 -1 -1 1 1 1 1 3 3 3 3

3D grafické výstupy (5/10) Povrchový graf surf(X, Y, Z, C) vykreslí povrchový graf Z = f(X,Y), X, Y mohou být matice vygenerované funkcí mashgrid nebo i jen vektory Z je matice výsledné 3D funkce C definuje barevnou paletu, není-li definováno, použije se aktuální colorbar zobrazí sloupec s barevným měřítkem v ose z [x,y] = meshgrid(-5:0.1:5); Z = x.^2+y.^2; X = x(1,:); Y = y(:,1);

3D grafické výstupy (6/10) Příklad: BPC2E_Ex130.m figure() %surf(x,y,Z) surf(X,Y,Z) grid on title('z=x^2+y^2') xlabel('x') ylabel('y') zlabel('z') colorbar view(135, 45) Příklad: BPC2E_Ex130.m

3D grafické výstupy (7/10) Definice barevné palety – jedna barva Paleta je obecně matice použitých barev se sloupci R, G, B v rozsahu <0, 1>, příklad jen pro červenou barvu R=1, G=0, B=0: [x,y] = meshgrid(-5:0.1:5); Z = abs(x.^2+y.^2-20); X = x(1,:); Y = y(:,1); figure() surf(X,Y,Z) grid on title('z=|x^2+y^2-20|') xlabel('x') ylabel('y') zlabel('z') colormap([1 0 0]) Příklad: BPC2E_Ex131.m

3D grafické výstupy (8/10) Síťový graf mesh(X, Y, Z, C) – význam parametrů shodný se surf() Příklad s barevnou paletou s jednou černou barvou [x,y] = meshgrid(-4*pi:0.2*pi:4*pi); Z = x.*sin(x)+y.*sin(y); X = x(1,:); Y = y(:,1); figure() mesh(X,Y,Z) grid on title('z=x*sin(x)+y*sin(y)') xlabel('x') ylabel('y') zlabel('z') colormap([0 0 0]) Příklad: BPC2E_Ex132.m

3D grafické výstupy (9/10) Konturový graf contour(X, Y, Z, C) – význam parametrů shodný se surf(), zobrazení 3D grafu jako 2D kontury [x,y] = meshgrid(-pi:0.05*pi:pi); Z = sin(x).^2+cos(y).^2; X = x(1,:); Y = y(:,1); figure() contour(X,Y,Z) grid on title('z=sin^2(x)+cos^2(y)') xlabel('x') ylabel('y') zlabel('z') colorbar Příklad: BPC2E_Ex133.m

3D grafické výstupy (10/10) Kombinace 3D grafu (povrch. nebo síť.) s 2D konturovým surfc()a meshc() [x,y] = meshgrid(-2*pi:0.05*pi:2*pi); Z = sin(x)+sin(y); X = x(1,:); Y = y(:,1); figure() meshc(X,Y,Z) %surfc(X,Y,Z) grid on title('z=sin(x)+sin(y)') xlabel('x') ylabel('y') zlabel('z') colormap('Winter') colorbar Příklad: BPC2E_Ex134.m

Téma následující přednášky DĚKUJI ZA POZORNOST Téma následující přednášky Práce se soubory v Matlabu