MATLB: p edná²ka 2. Datové typy a struktury. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií.

Podobné dokumenty
MATLB: p edná²ka 1. Prom nné, indexování a operátory. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Cvi ení 1. Modelování systém a proces. Mgr. Lucie Kárná, PhD. March 2, Organizace cvi ení 2 Matlab Za ínáme Základní operace Základní funkce

Cvi ení 1. Cvi ení 1. Modelování systém a proces. Mgr. Lucie Kárná, PhD. March 2, 2018

P íklady k prvnímu testu - Scilab

Skalární sou in. Úvod. Denice skalárního sou inu

Modelování v elektrotechnice

Vektor náhodných veli in - práce s více prom nnými

Základy algoritmizace a programování

e²ení systém lineárních rovnic pomocí s ítací, dosazovací a srovnávací metody

Systém je citlivý na velikost písmen CASE SENSITIVE rozeznává malá velká písmena, např. PROM=1; PROm=1; PRom=1; Prom=1; prom=1; - 5 různých proměnných

Předzpracování dat. Cvičení 2: Import a příprava dat v Matlabu MI-PDD, 09/2011. Pavel Kordík MI-POA

Úvod do Matlabu. Praha & EU: Investujeme do vaší budoucnosti. 1 / 24 Úvod do Matlabu

pi Ludolfovo číslo π = 3,14159 e Eulerovo číslo e = 2,71828 (lze spočítat jako exp(1)), např. je v Octave, v MATLABu tato konstanta e není

- transpozice (odlišuje se od překlopení pro komplexní čísla) - překlopení matice pole podle hlavní diagonály, např.: A.' ans =

Skriptování co se do minula nevešlo, práce s řetězci a řešení rovnic

Stručný návod k programu Octave

Limity funkcí v nevlastních bodech. Obsah

P íklad 1 (Náhodná veli ina)

Ergodické Markovské et zce

ROZ1 - Cv. 1 - Zobrazenэ snэmku a zсklady Matlabu

Pravd podobnost a statistika - cvi ení. Simona Domesová místnost: RA310 (budova CPIT) web:

TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

Pr b h funkce I. Obsah. Maxima a minima funkce

Algoritmizace a programování

MATLAB základy. Roman Stanec PEF MZLU

MATrixLABoratory letný semester 2004/2005

PARADIGMATA PROGRAMOVÁNÍ 2A MAKRA III

Domácí úkol 2. Obecné pokyny. Dbejte na formáln správný zápis výpo tu! Pro vy íslení výsledku pro binomické rozd lení pouºijte nap. Maple nebo Matlab.

Algoritmizace a programování

Základní stavební prvky algoritmu

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

Střední škola pedagogická, hotelnictví a služeb, Litoměříce, příspěvková organizace

Specifikace systému ESHOP

P íklady k druhému testu - Matlab

awk programovatelný filtr

% vyhledání prvku s max. velikostí v jednotlivých sloupcích matice X

Binární operace. Úvod. Pomocný text

E+034 = ; = e E+034

Pôvodne: Interaktívny program na operácie s maticami Teraz: Vysoko úrovňový jazyk na technické výpočty a interaktívne prostredie na:

Programování 1. hodina. RNDr. Jan Lánský, Ph.D. Katedra informatiky a matematiky Fakulta ekonomických studií Vysoká škola finanční a správní 2015

PARADIGMATA PROGRAMOVÁNÍ 2 KORUTINY, NEDETERMINISMUS

1. Spo t te limity (m ºete pouºívat l'hospitalovo pravidlo) x cotg x 1. c) lim. g) lim e x 1. cos(x) =

Cvi ení 7. Docházka a testík - 15 min. Distfun 10 min. Úloha 1

Derivování sloºené funkce

Obsah. Pouºité zna ení 1

Reálná ísla a posloupnosti Jan Malý

SQL - úvod. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, P edn. 6

MATLAB Úvod. Úvod do Matlabu. Miloslav Čapek

Integrování jako opak derivování

T i hlavní v ty pravd podobnosti

ZPRO v "C" Ing. Vít Hanousek. verze 0.3

Objektov orientované programování. C++ Akademie SH. 7. Objektov orientované programování. Michal Kvasni ka. Za áte níci C++ 2.

Algoritmizace a programování

Záludnosti velkých dimenzí

Seminá e. Ing. Michal Valenta PhD. Databázové systémy BI-DBS ZS 2010/11, sem. 1-13

na za átku se denuje náhodná veli ina

Opakování programování

Příklad: Řešte soustavu lineárních algebraických rovnic 10x 1 + 5x 2 +70x 3 + 5x 4 + 5x 5 = 275 2x 1 + 7x 2 + 6x 3 + 9x 4 + 6x 5 = 100 8x 1 + 9x 2 +

Sazba zdrojových kód. Jakub Kadl ík

Skriptování aneb funkce a procedury, cykly a vstupy a výstupy

Dotazování nad stromem abstraktní syntaxe

Návrh a tvorba WWW stránek 1/38 PHP

cyklus s daným počtem opakování cyklus s podmínkou na začátku (cyklus bez udání počtu opakování)

1.1 Struktura programu v Pascalu Vstup a výstup Operátory a některé matematické funkce 5

Pole a Funkce. Úvod do programování 1 Tomáš Kühr

BOZP - akcepta ní testy

1. Vsechny promenne jsou matice. Skalar je a(1,1). Vektor je bud' radkovy a(1,5) nebo sloupcovy

I. VRSTEVNICE FUNKCE, OTEV ENÉ A UZAV ENÉ MNOšINY

Základy programování (IZP)

Poznámky k p edm tu: Práce s po íta em a programování

Rovnice a nerovnice. Posloupnosti.

Team Engineering. New in V13. TIA Portal news. Restricted / Siemens AG All Rights Reserved.

Zápis programu v jazyce C#

Uºivatelská p íru ka Octopus

Data v počítači EIS MIS TPS. Informační systémy 2. Spojení: jan.skrbek@tul.cz tel.: Konzultace: úterý

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Kompilace Makele C++ Zadání úlohy. Kompilace a Makele. OSD. O. Fi²er. April 18, O. Fi²er Kompilace, Makele

Operační systémy. Cvičení 4: Programování v C pod Unixem

Vstupní požadavky, doporučení a metodické pokyny

Základy algoritmizace a programování

Plánování výroby elekt iny a ízení rizik na liberalizovaném trhu

Základní praktikum laserové techniky

Z OBRAZOVÉHO ZÁZNAMU. Jan HAVLÍK. Katedra teorie obvodů, Fakulta elektrotechnická

Základy algoritmizace a programování

Maturitní témata z předmětu Programování a databázové systémy. pro šk. rok 2012/2013

Text m ºe být postupn upravován a dopl ován. Datum poslední úpravy najdete u odkazu na staºení souboru. Veronika Sobotíková

Úvod Petr Kropík viz:

P íprava projektové ádosti. Seminá PAAK - P íprava projekt

Sbírka úloh pro elektronickou stavebnici. Stručný popis programovacího jazyka Bascom AVR

Prezentace. Ing. Petr V elák 6. b ezna 2009

KTE / PPEL Počítačová podpora v elektrotechnice

Publicita projektu, udr itelnost projektu, pracovní místa, ú etnictví projektu. Seminá PAAK ízení projekt

Stru ný obsah. Úvod do Microsoft.NET Kapitola 1: Vývoj her a ízený kód...15

Transak ní zpracování I

více křivek v jednom grafu hold on přidrží aktuální graf v grafickém okně, lze nakreslit více grafů do jednoho grafického okna postupně hold off

P ÍPRAVY NA HODINU MATEMATIKA

1. (18 bod ) Náhodná veli ina X je po et rub p i 400 nezávislých hodech mincí. a) Pomocí ƒeby²evovy nerovnosti odhadn te pravd podobnost

Aplikace Embedded systémů v Mechatronice. Michal Bastl A2/713a

Transkript:

TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií MATLB: p edná²ka 2 Datové typy a struktury Zbyn k Koldovský Projekt ESF CZ.1.07/2.2.00/28.0050 Modernizace didaktických metod a inovace výuky technických p edm t.

ƒást I Datové typy a struktury

Datové typy a struktury P ehled typ : Product Help MATLAB Programming Fundamentals Classes (Data Types)

Numerické, logické a textové datové typy Numerické: p etypování pomocí int8, uint8, int16, single, double... Logické Textové: char, et zce jako pole typ char, pracujeme s ním tedy podobn jako s maticemi (spojování, indexování, atd.) >> s='ahoj' s = Ahoj >> whos s Name Size Bytes Class Attributes s 1x4 8 char >> s(2) ans = h

Numerické, logické a textové datové typy Numerické: p etypování pomocí int8, uint8, int16, single, double... Logické Textové: char, et zce jako pole typ char, pracujeme s ním tedy podobn jako s maticemi (spojování, indexování, atd.) >> s='ahoj' s = Ahoj >> whos s Name Size Bytes Class Attributes s 1x4 8 char >> s(2) ans = h

Numerické, logické a textové datové typy Numerické: p etypování pomocí int8, uint8, int16, single, double... Logické Textové: char, et zce jako pole typ char, pracujeme s ním tedy podobn jako s maticemi (spojování, indexování, atd.) >> s='ahoj' s = Ahoj >> whos s Name Size Bytes Class Attributes s 1x4 8 char >> s(2) ans = h

et zce >> s=[s ' Honzo'] % spojování s = Ahoj Honzo >> a=['ahoj';'honzo'] % chyba - ádky matice nejsou stejn velké??? Error using ==> vertcat CAT arguments dimensions are not consistent. >> a=['ahoj ';'Honzo'] a = Ahoj Honzo >> strcmp(a(1,:),'ahoj ') % porovnání et zc ans = 1

Standardní p íkazy pro práci s et zci strcmp, strfind, regexp - porovnávání, vyhledávání, regulární výrazy, parsování fprintf, sprintf - formátované výrazy upper, lower - velká/malá písmena eval - vyhodnovení výrazu

Standardní p íkazy pro práci s et zci strcmp, strfind, regexp - porovnávání, vyhledávání, regulární výrazy, parsování fprintf, sprintf - formátované výrazy upper, lower - velká/malá písmena eval - vyhodnovení výrazu

Standardní p íkazy pro práci s et zci strcmp, strfind, regexp - porovnávání, vyhledávání, regulární výrazy, parsování fprintf, sprintf - formátované výrazy upper, lower - velká/malá písmena eval - vyhodnovení výrazu

Standardní p íkazy pro práci s et zci strcmp, strfind, regexp - porovnávání, vyhledávání, regulární výrazy, parsování fprintf, sprintf - formátované výrazy upper, lower - velká/malá písmena eval - vyhodnovení výrazu

Záznamy Datový typ struct Automatická denice poloºek >> s.jmeno='tomas'; >> s.adresa='praha'; % nebo >> s=struct('jmeno','tomas','adresa','praha') s = jmeno: 'Tomas' adresa: 'Praha' Kaºdý prvek je zárove pole >> whos s Name Size Bytes Class Attributes s 1x1 268 struct

Záznamy Datový typ struct Automatická denice poloºek >> s.jmeno='tomas'; >> s.adresa='praha'; % nebo >> s=struct('jmeno','tomas','adresa','praha') s = jmeno: 'Tomas' adresa: 'Praha' Kaºdý prvek je zárove pole >> whos s Name Size Bytes Class Attributes s 1x1 268 struct

Záznamy Datový typ struct Automatická denice poloºek >> s.jmeno='tomas'; >> s.adresa='praha'; % nebo >> s=struct('jmeno','tomas','adresa','praha') s = jmeno: 'Tomas' adresa: 'Praha' Kaºdý prvek je zárove pole >> whos s Name Size Bytes Class Attributes s 1x1 268 struct

Záznamy (2) Pole záznam (databáze) >> s(2).jmeno='ales' s = 1x2 struct array with fields: jmeno adresa >> s(2) ans = jmeno: 'Ales' adresa: []

Záznamy (3) P íklad >> files=dir('*.m') files = 6x1 struct array with fields: name date bytes isdir datenum >> files(1) ans = name: 'dft.m' date: '05-XI-2009 10:59:17' bytes: 143 isdir: 0 datenum: 7.3408e+005

Záznamy (4) P íklad >> files(1:3).name ans = dft.m ans = funkcef.m ans = pokus.m >> [files(1:3).name] ans = dft.mfunkcef.mpokus.m >> strvcat(files(1:3).name) ans = dft.m funkcef.m pokus.m

Záznamy (5) P íklad >> files=dir files = 131x1 struct array with fields: name date bytes isdir datenum >> directory=files([files.isdir]) % pouze adresá e directory = 7x1 struct array with fields: name date bytes isdir datenum

Vícerozm zná pole Vícerozm rné pole typu double >> A=zeros(3,4,5,2); >> A(:,1,2,2) % indexování jako u matic P íkazy sum, mean, prod >> sum(v) % sou et 1D pole = vektoru >> sum(a) % sou et sloupc >> sum(a,n) % sou et p es n-tý rozm r % n-tý rozm r výsledku je 1 Dal²í p íkazy: squeeze, reshape, permute >> squeeze(sum(sum(a,3),2)) % odstraní 1-dimenzionální % rozm ry >> reshape(a,12,10) % zm na rozm r % po et prvk nového pole musí být stejný >> permute(a,[3 4 1 2]) % vým na po adí rozm r

Vícerozm zná pole Vícerozm rné pole typu double >> A=zeros(3,4,5,2); >> A(:,1,2,2) % indexování jako u matic P íkazy sum, mean, prod >> sum(v) % sou et 1D pole = vektoru >> sum(a) % sou et sloupc >> sum(a,n) % sou et p es n-tý rozm r % n-tý rozm r výsledku je 1 Dal²í p íkazy: squeeze, reshape, permute >> squeeze(sum(sum(a,3),2)) % odstraní 1-dimenzionální % rozm ry >> reshape(a,12,10) % zm na rozm r % po et prvk nového pole musí být stejný >> permute(a,[3 4 1 2]) % vým na po adí rozm r

Vícerozm zná pole Vícerozm rné pole typu double >> A=zeros(3,4,5,2); >> A(:,1,2,2) % indexování jako u matic P íkazy sum, mean, prod >> sum(v) % sou et 1D pole = vektoru >> sum(a) % sou et sloupc >> sum(a,n) % sou et p es n-tý rozm r % n-tý rozm r výsledku je 1 Dal²í p íkazy: squeeze, reshape, permute >> squeeze(sum(sum(a,3),2)) % odstraní 1-dimenzionální % rozm ry >> reshape(a,12,10) % zm na rozm r % po et prvk nového pole musí být stejný >> permute(a,[3 4 1 2]) % vým na po adí rozm r

Pam ová pole Pam ová pole: Cell Arrays Nejobecn j²í moºné: indexovaná pole jejichº prvky jsou libovolného typu a struktury Automatická alokace, indexování pomocí {, } >> c{1,1}=randn(3,4); >> c{1,2}=struct('jmeno','ales'); >> c{1,3}=c c = [3x4 double] [1x1 struct] {1x2 cell} Indexování: >> c(2) % vrací pam ové pole 1x1 na 2. pozici v c >> c{2} % vrací obsah 2. prvku v c >> c{1}(2,3) % (2,3)-prvek v 1. prvku c >> c{3}{1,2}.jmeno(3) % no comment ans = e Spojování: pozor na rozdíl významu {, } a [, ]

Pam ová pole Pam ová pole: Cell Arrays Nejobecn j²í moºné: indexovaná pole jejichº prvky jsou libovolného typu a struktury Automatická alokace, indexování pomocí {, } >> c{1,1}=randn(3,4); >> c{1,2}=struct('jmeno','ales'); >> c{1,3}=c c = [3x4 double] [1x1 struct] {1x2 cell} Indexování: >> c(2) % vrací pam ové pole 1x1 na 2. pozici v c >> c{2} % vrací obsah 2. prvku v c >> c{1}(2,3) % (2,3)-prvek v 1. prvku c >> c{3}{1,2}.jmeno(3) % no comment ans = e Spojování: pozor na rozdíl významu {, } a [, ]

Pam ová pole Pam ová pole: Cell Arrays Nejobecn j²í moºné: indexovaná pole jejichº prvky jsou libovolného typu a struktury Automatická alokace, indexování pomocí {, } >> c{1,1}=randn(3,4); >> c{1,2}=struct('jmeno','ales'); >> c{1,3}=c c = [3x4 double] [1x1 struct] {1x2 cell} Indexování: >> c(2) % vrací pam ové pole 1x1 na 2. pozici v c >> c{2} % vrací obsah 2. prvku v c >> c{1}(2,3) % (2,3)-prvek v 1. prvku c >> c{3}{1,2}.jmeno(3) % no comment ans = e Spojování: pozor na rozdíl významu {, } a [, ]

Pam ová pole Pam ová pole: Cell Arrays Nejobecn j²í moºné: indexovaná pole jejichº prvky jsou libovolného typu a struktury Automatická alokace, indexování pomocí {, } >> c{1,1}=randn(3,4); >> c{1,2}=struct('jmeno','ales'); >> c{1,3}=c c = [3x4 double] [1x1 struct] {1x2 cell} Indexování: >> c(2) % vrací pam ové pole 1x1 na 2. pozici v c >> c{2} % vrací obsah 2. prvku v c >> c{1}(2,3) % (2,3)-prvek v 1. prvku c >> c{3}{1,2}.jmeno(3) % no comment ans = e Spojování: pozor na rozdíl významu {, } a [, ]

Pam ová pole Pam ová pole: Cell Arrays Nejobecn j²í moºné: indexovaná pole jejichº prvky jsou libovolného typu a struktury Automatická alokace, indexování pomocí {, } >> c{1,1}=randn(3,4); >> c{1,2}=struct('jmeno','ales'); >> c{1,3}=c c = [3x4 double] [1x1 struct] {1x2 cell} Indexování: >> c(2) % vrací pam ové pole 1x1 na 2. pozici v c >> c{2} % vrací obsah 2. prvku v c >> c{1}(2,3) % (2,3)-prvek v 1. prvku c >> c{3}{1,2}.jmeno(3) % no comment ans = e Spojování: pozor na rozdíl významu {, } a [, ]

ƒást II Programování skript a funkcí

Skript ASCII soubory s koncovkou *.m Skript nemá vlastní datový segment Workspace, pracujeme v základním Base Globální prom nné: deklarace pomocí p íkazu global

Skript ASCII soubory s koncovkou *.m Skript nemá vlastní datový segment Workspace, pracujeme v základním Base Globální prom nné: deklarace pomocí p íkazu global

Skript ASCII soubory s koncovkou *.m Skript nemá vlastní datový segment Workspace, pracujeme v základním Base Globální prom nné: deklarace pomocí p íkazu global

Funkce ASCII soubory s koncovkou *.m za ínající klí ovým slovem function Vlastní datový segment Workspace (prom nné jsou lokální) Deklarace funkce, vstupních a výstupních prom nných function [a,b,c]=mojefunkce(x,y) % tady je nápov da Net eba denovat datové typy, po et vstup a výstup (deklarací si vstupy a výstupy pouze pojmenováváme, nemusí existovat, m ºe jich být víc) Po et vstupních a výstupních prom nných: prom nné nargin a nargout, pro vstup a výstup lze pouºít pam ové pole varargin, varargout Vloºené funkce: dal²ím klí ovým slovem function denujeme lokální funkci, která ale není vid t navenek

Funkce ASCII soubory s koncovkou *.m za ínající klí ovým slovem function Vlastní datový segment Workspace (prom nné jsou lokální) Deklarace funkce, vstupních a výstupních prom nných function [a,b,c]=mojefunkce(x,y) % tady je nápov da Net eba denovat datové typy, po et vstup a výstup (deklarací si vstupy a výstupy pouze pojmenováváme, nemusí existovat, m ºe jich být víc) Po et vstupních a výstupních prom nných: prom nné nargin a nargout, pro vstup a výstup lze pouºít pam ové pole varargin, varargout Vloºené funkce: dal²ím klí ovým slovem function denujeme lokální funkci, která ale není vid t navenek

Funkce ASCII soubory s koncovkou *.m za ínající klí ovým slovem function Vlastní datový segment Workspace (prom nné jsou lokální) Deklarace funkce, vstupních a výstupních prom nných function [a,b,c]=mojefunkce(x,y) % tady je nápov da Net eba denovat datové typy, po et vstup a výstup (deklarací si vstupy a výstupy pouze pojmenováváme, nemusí existovat, m ºe jich být víc) Po et vstupních a výstupních prom nných: prom nné nargin a nargout, pro vstup a výstup lze pouºít pam ové pole varargin, varargout Vloºené funkce: dal²ím klí ovým slovem function denujeme lokální funkci, která ale není vid t navenek

Funkce ASCII soubory s koncovkou *.m za ínající klí ovým slovem function Vlastní datový segment Workspace (prom nné jsou lokální) Deklarace funkce, vstupních a výstupních prom nných function [a,b,c]=mojefunkce(x,y) % tady je nápov da Net eba denovat datové typy, po et vstup a výstup (deklarací si vstupy a výstupy pouze pojmenováváme, nemusí existovat, m ºe jich být víc) Po et vstupních a výstupních prom nných: prom nné nargin a nargout, pro vstup a výstup lze pouºít pam ové pole varargin, varargout Vloºené funkce: dal²ím klí ovým slovem function denujeme lokální funkci, která ale není vid t navenek

Funkce ASCII soubory s koncovkou *.m za ínající klí ovým slovem function Vlastní datový segment Workspace (prom nné jsou lokální) Deklarace funkce, vstupních a výstupních prom nných function [a,b,c]=mojefunkce(x,y) % tady je nápov da Net eba denovat datové typy, po et vstup a výstup (deklarací si vstupy a výstupy pouze pojmenováváme, nemusí existovat, m ºe jich být víc) Po et vstupních a výstupních prom nných: prom nné nargin a nargout, pro vstup a výstup lze pouºít pam ové pole varargin, varargout Vloºené funkce: dal²ím klí ovým slovem function denujeme lokální funkci, která ale není vid t navenek

Funkce ASCII soubory s koncovkou *.m za ínající klí ovým slovem function Vlastní datový segment Workspace (prom nné jsou lokální) Deklarace funkce, vstupních a výstupních prom nných function [a,b,c]=mojefunkce(x,y) % tady je nápov da Net eba denovat datové typy, po et vstup a výstup (deklarací si vstupy a výstupy pouze pojmenováváme, nemusí existovat, m ºe jich být víc) Po et vstupních a výstupních prom nných: prom nné nargin a nargout, pro vstup a výstup lze pouºít pam ové pole varargin, varargout Vloºené funkce: dal²ím klí ovým slovem function denujeme lokální funkci, která ale není vid t navenek

Debugging a Proling Breakpointy vkládáme v programovacím editoru, z p íkazové ádky je to téº moºné (p íkaz dbstop) av²ak... Lze vkládat i podmín né breakpointy Pomáháme si p íkazy echo, disp, keyboard, return, warning,... B hem debuggingu m ºeme d lat prakticky cokoliv: sledovat a m nit prom nné, vytvá et nové, volat p íkazy... zde je zásadní výhoda toho, ºe Matlab je interpret nikoliv p eklada Proler slouºí k m ení asové náro nosti profile clear profile on mujskript mojefunkce(x,y) profile off profile report

Debugging a Proling Breakpointy vkládáme v programovacím editoru, z p íkazové ádky je to téº moºné (p íkaz dbstop) av²ak... Lze vkládat i podmín né breakpointy Pomáháme si p íkazy echo, disp, keyboard, return, warning,... B hem debuggingu m ºeme d lat prakticky cokoliv: sledovat a m nit prom nné, vytvá et nové, volat p íkazy... zde je zásadní výhoda toho, ºe Matlab je interpret nikoliv p eklada Proler slouºí k m ení asové náro nosti profile clear profile on mujskript mojefunkce(x,y) profile off profile report

Debugging a Proling Breakpointy vkládáme v programovacím editoru, z p íkazové ádky je to téº moºné (p íkaz dbstop) av²ak... Lze vkládat i podmín né breakpointy Pomáháme si p íkazy echo, disp, keyboard, return, warning,... B hem debuggingu m ºeme d lat prakticky cokoliv: sledovat a m nit prom nné, vytvá et nové, volat p íkazy... zde je zásadní výhoda toho, ºe Matlab je interpret nikoliv p eklada Proler slouºí k m ení asové náro nosti profile clear profile on mujskript mojefunkce(x,y) profile off profile report

Debugging a Proling Breakpointy vkládáme v programovacím editoru, z p íkazové ádky je to téº moºné (p íkaz dbstop) av²ak... Lze vkládat i podmín né breakpointy Pomáháme si p íkazy echo, disp, keyboard, return, warning,... B hem debuggingu m ºeme d lat prakticky cokoliv: sledovat a m nit prom nné, vytvá et nové, volat p íkazy... zde je zásadní výhoda toho, ºe Matlab je interpret nikoliv p eklada Proler slouºí k m ení asové náro nosti profile clear profile on mujskript mojefunkce(x,y) profile off profile report

Debugging a Proling Breakpointy vkládáme v programovacím editoru, z p íkazové ádky je to téº moºné (p íkaz dbstop) av²ak... Lze vkládat i podmín né breakpointy Pomáháme si p íkazy echo, disp, keyboard, return, warning,... B hem debuggingu m ºeme d lat prakticky cokoliv: sledovat a m nit prom nné, vytvá et nové, volat p íkazy... zde je zásadní výhoda toho, ºe Matlab je interpret nikoliv p eklada Proler slouºí k m ení asové náro nosti profile clear profile on mujskript mojefunkce(x,y) profile off profile report

Cykly Cyklus for for i=ind % ind obsahuje hodnoty, které i nabývá % asto nap 1:50 % t lo cyklu end Lze m nit ídící prom nnou v pr b hu, av²ak v dal²ím pr b hu bude mít dal²í hodnotu z pole ind Cyklus while while podminka % podminka je logická hodnota % nap. a>1 % t lo cyklu end

Cykly Cyklus for for i=ind % ind obsahuje hodnoty, které i nabývá % asto nap 1:50 % t lo cyklu end Lze m nit ídící prom nnou v pr b hu, av²ak v dal²ím pr b hu bude mít dal²í hodnotu z pole ind Cyklus while while podminka % podminka je logická hodnota % nap. a>1 % t lo cyklu end

Podmínky Podmínka if podminka % t lo podmínky elseif podminka2 % t lo druhé podmínky elseif podminka3 % t lo t etí podmínky else % jinak end

Podmínka switch Podmínka switch switch vyraz case 1 % t lo p íkazu case {2, 3, 4} % t lo p íkazu otherwise % jinak % t lo p íkazu end Provádí se pouze pravdivé p ípady, není t eba ukon ovat p ípady pomocí break jako je tomu nap. v C++

Standardní matematické funkce v Matlabu Standardní názvy: sin, cos, tan, log, exp, abs, sign... Funkce fungují obecn v komplexním oboru Funkce se standardn aplikují po prvcích, výstup má stejný rozm r jako vstup Zaokrouhlování: round, ceil, fix, floor Maximální a minimální prvek a medián: max, mix, median. V p ípad vektoru je jedno je-li sloupcový nebo ádkový, u matic fungují po sloupcích, dále viz help. Neslouºí k hledání minim a maxim funkcí (Optimization Toolbox)! T íd ní: sort

Standardní matematické funkce v Matlabu Standardní názvy: sin, cos, tan, log, exp, abs, sign... Funkce fungují obecn v komplexním oboru Funkce se standardn aplikují po prvcích, výstup má stejný rozm r jako vstup Zaokrouhlování: round, ceil, fix, floor Maximální a minimální prvek a medián: max, mix, median. V p ípad vektoru je jedno je-li sloupcový nebo ádkový, u matic fungují po sloupcích, dále viz help. Neslouºí k hledání minim a maxim funkcí (Optimization Toolbox)! T íd ní: sort

Standardní matematické funkce v Matlabu Standardní názvy: sin, cos, tan, log, exp, abs, sign... Funkce fungují obecn v komplexním oboru Funkce se standardn aplikují po prvcích, výstup má stejný rozm r jako vstup Zaokrouhlování: round, ceil, fix, floor Maximální a minimální prvek a medián: max, mix, median. V p ípad vektoru je jedno je-li sloupcový nebo ádkový, u matic fungují po sloupcích, dále viz help. Neslouºí k hledání minim a maxim funkcí (Optimization Toolbox)! T íd ní: sort

Standardní matematické funkce v Matlabu Standardní názvy: sin, cos, tan, log, exp, abs, sign... Funkce fungují obecn v komplexním oboru Funkce se standardn aplikují po prvcích, výstup má stejný rozm r jako vstup Zaokrouhlování: round, ceil, fix, floor Maximální a minimální prvek a medián: max, mix, median. V p ípad vektoru je jedno je-li sloupcový nebo ádkový, u matic fungují po sloupcích, dále viz help. Neslouºí k hledání minim a maxim funkcí (Optimization Toolbox)! T íd ní: sort

Standardní matematické funkce v Matlabu Standardní názvy: sin, cos, tan, log, exp, abs, sign... Funkce fungují obecn v komplexním oboru Funkce se standardn aplikují po prvcích, výstup má stejný rozm r jako vstup Zaokrouhlování: round, ceil, fix, floor Maximální a minimální prvek a medián: max, mix, median. V p ípad vektoru je jedno je-li sloupcový nebo ádkový, u matic fungují po sloupcích, dále viz help. Neslouºí k hledání minim a maxim funkcí (Optimization Toolbox)! T íd ní: sort

Standardní matematické funkce v Matlabu Standardní názvy: sin, cos, tan, log, exp, abs, sign... Funkce fungují obecn v komplexním oboru Funkce se standardn aplikují po prvcích, výstup má stejný rozm r jako vstup Zaokrouhlování: round, ceil, fix, floor Maximální a minimální prvek a medián: max, mix, median. V p ípad vektoru je jedno je-li sloupcový nebo ádkový, u matic fungují po sloupcích, dále viz help. Neslouºí k hledání minim a maxim funkcí (Optimization Toolbox)! T íd ní: sort

ƒást III Vektorizace a skládání výraz a p íkaz

Vektorizace a skládání výraz a p íkaz V Matlabu se obecn snaºíme vyhnout cykl m. Jsou pomalé, vytvá í zbyt n dlouhý kód, m ºe nastat problém s doalokováváním. Nap. y=[]; % prázdné pole for x=1:10000 y=[y x]; % na konec pole y p idáme prvek x end V cyklu for asto zpracováváme postupn v²echny prvky pole, tzv. po prvcích. To lze asto e²it vektorizovaným výrazem. Jiº známý p íklad z minulé p edná²ky: vyhledávání prvk pomocí logického indexování.

Vektorizace a skládání výraz a p íkaz V Matlabu se obecn snaºíme vyhnout cykl m. Jsou pomalé, vytvá í zbyt n dlouhý kód, m ºe nastat problém s doalokováváním. Nap. y=[]; % prázdné pole for x=1:10000 y=[y x]; % na konec pole y p idáme prvek x end V cyklu for asto zpracováváme postupn v²echny prvky pole, tzv. po prvcích. To lze asto e²it vektorizovaným výrazem. Jiº známý p íklad z minulé p edná²ky: vyhledávání prvk pomocí logického indexování.

Vektorizace a skládání výraz a p íkaz V Matlabu se obecn snaºíme vyhnout cykl m. Jsou pomalé, vytvá í zbyt n dlouhý kód, m ºe nastat problém s doalokováváním. Nap. y=[]; % prázdné pole for x=1:10000 y=[y x]; % na konec pole y p idáme prvek x end V cyklu for asto zpracováváme postupn v²echny prvky pole, tzv. po prvcích. To lze asto e²it vektorizovaným výrazem. Jiº známý p íklad z minulé p edná²ky: vyhledávání prvk pomocí logického indexování.

Vektorizace a skládání výraz a p íkaz P íklad: Výpo et log 10 (x) na intervalu [0.01,10] s krokem 0.01 index=0; for x=0.01:0.01:10 index=index+1; y(index)=log10(x); end versus x=0.01:0.01:10; y=log10(x); versus y=log10(0.01:0.01:10);

Vektorizace a skládání výraz a p íkaz P íklad: Výpo et sin 2 (x) cos(x) na intervalu [1,20] s krokem 0.1 index=0; for x=1:0.1:20 index=index+1; y(index)=sin(x)^2*cos(x); end versus x=1:0.1:20; y=sin(x)^2*cos(x); % toto je ²patn! y=sin(x).^2.*cos(x);

Vektorizace a skládání výraz a p íkaz P íklad: Ode tení ádkových pr m r z ádk matice A for i=1:size(a,1) for j=1:size(a,2) prumer=0; for k=1:size(a,2) prumer=prumer+a(i,k); end prumer=prumer/size(a,2); A(i,j)=A(i,j)-prumer; end end % tohle je katastrofa: zápo et nikdy! versus for k=1:size(a,1) A(k,:)=A(k,:)-mean(A(k,:)); end

Vektorizace a skládání výraz a p íkaz P íklad: Ode tení ádkových pr m r z ádk matice A A = A - repmat(mean(a,2),1,size(a,2)); % repmat vytvá í pole "dlaºdicováním" první prom nné versus A = A - mean(a,2)*ones(1,size(a,2)); % astý trik s vyuºitím maticového násobení versus A = bsxfun(@minus,a,mean(a,2)); % pouºití speciální funkce bsxfun Tento materiál vznikl v rámci projektu ESF CZ.1.07/2.2.00/28.0050 Modernizace didaktických metod a inovace výuky technických p edm t, který je spolunancován Evropským sociálním fondem a státním rozpo tem ƒr.