MATLAB. Ing. Jitka Nováková, KTM Katedra textilních materiálů tel. 485353280



Podobné dokumenty
Stručný návod k programu Octave

Lineární algebra s Matlabem cvičení 3

X37SGS Signály a systémy

Čtvrtek 3. listopadu. Makra v Excelu. Obecná definice makra: Spouštění makra: Druhy maker, způsoby tvorby a jejich ukládání

Základy programování: Algoritmizace v systému MATLAB

Seminář z MATLABU. Jiří Krejsa. A2/710 krejsa@fme.vutbr.cz

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 +

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

SEMESTRÁLNÍ PRÁCE Z PŘEDMĚTU MODELOVÁNÍ MATLABEM

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

Nápověda k aplikaci GraphGUI

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

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Kreslení grafů v Matlabu

MATLAB. Popis prostředí MATLABu (pracovní plocha) MATLAB je integrovaným prostředím, s jehož pomocí lze provádět zejména:

MATLAB základy. Roman Stanec PEF MZLU

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í

Příklad: Součet náhodných čísel ve vektoru s počtem prvků, které zadá uživatel, pomocí sum() a pomocí cyklu for. Ověříme, že příliš výpisů na

Grafické výstupy v Octave/Matlabu a GnuPlotu

Doňar B., Zaplatílek K.: MATLAB - tvorba uživatelských aplikací, BEN - technická literatura, Praha, (ISBN:

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

E+034 = ; = e E+034

MS EXCEL. MS Excel

Ovládání Open Office.org Calc Ukládání dokumentu : Levým tlačítkem myši kliknete v menu na Soubor a pak na Uložit jako.

MS Word 2007 Šablony programu MS Word

BPC2E_C08 Parametrické 3D grafy v Matlabu

Úvod do programování. Lekce 1

Postupy práce se šablonami IS MPP

Základy algoritmizace a programování

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

Operace s vektory a maticemi + Funkce

Předmluva 9 Obsah knihy 9 Typografické konvence 10 Informace o autorovi 10 Poděkování 10

Programování v chemii (MATLAB)

Programy na PODMÍNĚNÝ příkaz IF a CASE

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

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

Prostředí Microstationu a jeho nastavení. Nastavení výkresu

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Zdokonalování gramotnosti v oblasti ICT. Kurz MS Excel kurz 6. Inovace a modernizace studijních oborů FSpS (IMPACT) CZ.1.07/2.2.00/28.

Excel tabulkový procesor

Nový způsob práce s průběžnou klasifikací lze nastavit pouze tehdy, je-li průběžná klasifikace v evidenčním pololetí a školním roce prázdná.

výsledek 2209 y (5) (x) y (4) (x) y (3) (x) 7y (x) 20y (x) 12y(x) (horní indexy značí derivaci) pro 1. y(x) = sin2x 2. y(x) = cos2x 3.

Úvod do Matlabu. Vít Vondrák Katedra aplikované matematiky FEI, VŠB-TU Ostrava

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

Tabulkové processory MS Excel (OpenOffice Calc)

MODAM Popis okna. 2 Jana Bělohlávková, Katedra matematiky a deskriptivní geometrie, VŠB - TU Ostrava

TECHNICKÁ UNIVERZITA V LIBERCI

Pro označení disku se používají písmena velké abecedy, za nimiž následuje dvojtečka.

DUM 06 téma: Tvorba makra pomocí VBA

IBRIDGE 1.0 UŽIVATELSKÝ MANUÁL

II. Úlohy na vložené cykly a podprogramy

Simulace. Simulace dat. Parametry

BALISTICKÝ MĚŘICÍ SYSTÉM

Funkce, podmíněný příkaz if-else, příkaz cyklu for

Excel tabulkový procesor

KAPITOLA 9 - POKROČILÁ PRÁCE S TABULKOVÝM PROCESOREM

2. cvičení z ZI1 - Excel

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

Stručný návod na program COMSOL, řešení příkladu 6 z Tepelných procesů.

Uživatelský manuál aplikace. Dental MAXweb

Reliance 3 design OBSAH

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

Programování v jazyku LOGO - úvod

Excel - pokračování. Př. Porovnání cestovních kanceláří ohraničení tabulky, úprava šířky sloupců, sestrojení grafu

Základní vzorce a funkce v tabulkovém procesoru

GeoGebra známá i neznámá

Práce v programu Word 2003

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

Spuštění a ukončení databázové aplikace Access

VYTVÁŘENÍ DATABÁZÍ, VKLÁDÁNÍ ÚDAJŮ

MATLAB HRAVĚ Zdeněk Jančík, FIT VUT Brno

VISUAL BASIC. Práce se soubory

Skripta ke školení. Základy VBA. vypracoval: Tomáš Herout. tel:

Příklady k druhému testu - Matlab

Univerzální prohlížeč naměřených hodnot

8. Posloupnosti, vektory a matice

AutoCAD definice bloku

Internetový přístup do databáze FADN CZ - uživatelská příručka Modul FADN BASIC

Práce s vektory. Vytváření vektorů. Přístup k prvkům vektoru. Zpracování prvků vektoru. Knihovní funkce pro práci s vektory. Generování vektorů

Základy algoritmizace a programování

Gymnázium Vysoké Mýto nám. Vaňorného 163, Vysoké Mýto

DIMTEL - dimenzování otopných těles v teplovodních soustavách

while cyklus s podmínkou na začátku cyklus bez udání počtu opakování while podmínka příkazy; příkazy; příkazy; end; % další pokračování programu

Školní kolo soutěže Baltík 2009, kategorie C

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

Registrační číslo projektu: Škola adresa: Šablona: Ověření ve výuce Pořadové číslo hodiny: Třída: Předmět: Název: MS Excel I Anotace:

Základy algoritmizace a programování

Visual Basic for Application

POČÍTAČOVÁ GRAFIKA VEKTOROVÁ GRAFIKA VÍCENÁSOBNÉ KOPÍROVÁNÍ

Projektová dokumentace GED 2006

Microsoft Office Word 2003

STATISTICA Téma 1. Práce s datovým souborem

VÝUKA MOŽNOSTÍ MATLABU

Střední škola informačních technologií a sociální péče, Brno, Purkyňova 97. Vybrané části Excelu. Ing. Petr Adamec

Programovací jazyk Pascal

Školící dokumentace administrátorů IS KRIZKOM (úroveň KRAJ) (role manager, administrátor )

Matematika B101MA1, B101MA2

Vektory a matice. Obsah. Aplikovaná matematika I. Carl Friedrich Gauss. Základní pojmy a operace

POZOR!!! INSTALACE POD WINDOWS 200 / XP / VISTA PROBÍHÁ VE DVOU ETAPÁCH A JE NUTNÉ DOKON

Transkript:

MATLAB Ing. Jitka Nováková, KTM Katedra textilních materiálů tel. 485353280

Zápočet Organizace předmětu Osobní prezentace zadané semestrální práce, jejíž řešení bylo předem (nejpozději 48 hod před obhajobou) zasláno pedagogovi. Dále je třeba počítat s prověřením znalostí základní orientace v programovém balíku Matlab. Student může použít vlastní poznámky, případně přinesený jiný tištěný studijní materiál. Používání elektronických zdrojů (internetu) není povoleno. Tréning doma na freeware Octave http://octave.sourceforge.net/ Copyright 1998-2011 John W. Eaton

Doporučená literatura MATLAB Zaplatílek, K.- Doňar, B. : MATLAB pro začátečníky, BEN, Praha 2005 Dušek, F.- Honc, V.: Matlab a simulink, Univerzita Pardubice, 2005. Bartko, R.- Miller, M.: Matlab I - algoritmizácia a riešenie úloh. Digital Grafic, Trenčín. Matlab Documentation, online: http://www.mathworks.com/help/techdoc/ Octave, online: http://www.abclinuxu.cz/clanky/programovani/octave-1-je-tokalkulacka http://www.octave.cz/

Úvod do systému MATLAB je vysoce výkonný jazyk určený pro technické výpočty. Může sloužit jako pomůcka pro vyučování a studium především nadstavbových předmětů matematiky a různých technických předmětů MATLAB = Matrix Laboratory Je to interaktivní jazyk jehož základní element je pole, které ovšem musí nejdříve uživatel definovat. A mxn a a : a 11 21 m1 a a a 12 22 : m2........ a a a 1n 2n : mn m počet řádků n počet sloupků

MATLAB v sobě zahrnuje: Matematické výpočty Vývoj algoritmů Měření údajů Modelování a simulace Analýzu údajů a vizualizaci Vědecké a inženýrské grafy Vývoj aplikací a programování Zdroj: http://www.mathworks.com/products/matlab/

Spuštění a vypnutí MATLABu Spuštění Dvojklik na ikonu, která se nachází na pracovní ploše. Z nabídky operačního systému (zpravidla): Start Programy MATLAB 6.5 MATLAB 6.5 Vypnutí Klik na ikonu v záhlaví pracovní plochy MATLABu Z nabídky File Exit MATLAB Stlačením kláves Ctrl+Q

Použití nápovědy v MATLABu Spuštění kliknutím na nabídku Help v záhlaví pracovní plochy MATLABu dojde k otevření samostatného okna s prohlížečem html nápovědy Matlabu Podobně se chová i příkaz >> helpwin Použití příkazu help řetězec, např. >> help sin Vypíše v pracovním okně nápovědu k danému tématu: SIN Sine. SIN(X) is the sine of the elements of X. Pro výpis nápovědy v oblasti elementárních funkcí se používá help elfun, pro elementární operátory help ops, pro obecnou nabídku nápovědy help.

Pracovní prostředí Příkazové okno V tomto okně zadáváme příkazy Historie příkazů Posloupnost příkazů, které jsme zadali v příkazovém okně Aktuální adresář Zobrazují se soubory aktuálního adresáře Pracovní prostor Přehled pracovního prostoru a možnost práce s položkami

Použití, jako u kalkulačky: Spočtěte 12.5+8 Příkazové okno Vyčíslete Spočtěte sin 3 2 2 4 tg 8 *180

Použití, jako u kalkulačky: >> 12.5+8 ans = >> pi ans = 20.5000 3.1416 Příkazové okno >> (sin(pi/3)+pow2(4))^2-tan(pi/8)*180 ans = 209.9044

Příkazové okno Zadejme matici 3x3 čísel: >> A=[1 2 3;4 5 6;7 8 9]

Příkazové okno Zadejme matici 3x3 čísel: >> A=[1 2 3;4 5 6;7 8 9] Po stisku Enter MATLAB vypíše: A= 1 2 3 4 5 6 7 8 9 Použijte clc funkci:

Příkazové okno Zadejme matici 3x3 čísel: >> A=[1 2 3;4 5 6;7 8 9] Po stisku Enter MATLAB vypíše: A= 1 2 3 4 5 6 7 8 9 Použijte clc funkci: Po stisku Enter MATLAB smaže obsah pracovního okna (Clear Command Window), proměnné zůstanou v pracovním prostoru

Proměnná Název až 31 znaků. Je povolena anglická abeceda, číslice a podtržítko. Číslo nesmí být na prvním místě. Každá proměnná z pohledu MATLABu je maticí, z hlediska rozměrů rozlišujeme Matici (mxn, kde m 1, n 1) Vektor (mx1, nebo nx1) Skalár (1x1, tedy jen číslo) >> nazev_promenne = výraz Některé proměnné jsou v MATLABu předdefinované eps malé reálné číslo 10-16 i,j komplexní jednotka pi Ludolfovo číslo

Příklad 1 Zkuste: >>a=5 %zadani skalaru >>a2=5.268e-2 %zadani skalaru ve vedeckem formatu >>b=1:0.3:20 %zadani vektoru >>c=[1 2 3 4] % zadani vektoru >>V=[1 2 3;4 5 6;7 8 9] %zadani matice >>C=[c;b] %zadani matice pres vektory >>c(2) %zjisteni hodnoty druheho prvku vektoru c >>b(4)=c(2,3) %priradi hodnotu z druheho radku a tretiho sloupce matice C do ctvrteho prvku vektoru b >>save %ulozi vsechny promenne do souboru matlab.mat v aktualnim adresari

Příklad 1 - řešení >>C=[c;b] %zadani matice pres vektory...chybové hlášení??? Error using ==> vertcat All rows in the bracketed expression must have the same number of columns....možné řešení >>C=[c;b(1:4)] %zadani matice pres radkove vektory, ktere mají stejny pocet sloupcu

Příklad 2 >> C1=C(1:2,2:4) >> C2=C(:,2:3) >> C3=C(2,:)

Smazání proměnné clear název_proměnné1 název_proměnné1 smaže vybrané proměnné clear smaže všechny proměnné z pracovního prostoru!! Smazané proměnné nelze obnovit, pokud předem nebyly uloženy na disku!!

Práce s proměnnými save jméno_souboru název_proměnné1 název_proměnné2 do zadaného souboru vloží uvedené proměnné save všechny proměnné uloží do souboru matlab.mat load jméno_souboru do pracovního prostoru MATLABu nahraje proměnné dříve uložené do souboru jméno_souboru

Příkaz Přiřazovací příkaz nazev_promenne = výraz Podmíněný příkaz, větvené (if) Přepínač(switch) Cyklus nebo symčka (for, while) Dále MATLAB obsahuje funkce pro práci s: Adresáři (cd, dir,..) Proměnnými (save, load, clear,..) Pokud je třeba napsat příkaz na více řádků, použijeme tři tečky. Potlačení výpisu výsledku provedeme použitím středníku. Více příkazů na jednom řádku oddělíme čárkou nebo středníkem (potlačí výpis proměnných), nebo zavoláme tzv M-soubor.

Komentáře, poznámky X = [125/100 0.9-9]; % vytvoreni vektoru x s hodnotami 1.25 a -8.1, bez vypisu Slouží k vysvětlení významu jednotlivých příkazů, skriptů nebo funkcí. Je nutno je používat ať už kvůli své zapomnětlivosti, či pro dalšího uživatele. Komentáře u uživatelských funkcí slouží jako nápověda, kterou lze zavolat příkazem help název. Komentáře MATLAB ignoruje a nepokouší se je provést

Aritmetické operátory Chování operátorů v MATLABu souvisí s tím, že obecně je každá proměnná považovaná za matici Obecně jsou operátory rozdělené na Unární (+a, -a, a', a.') Binární (a+b, a-b, a*b, a.*b, a^b, a. ^b, a/b, a./b, a\b, a.\b) Dvojtečka (i:k:j) Relační operátory (a<b, a<=b, a b, a =b, a==b, a =b) Logické (~a, a&b, a b) Pozor u čtvercových matic!! Pro ně většina operátorů funguje aniž by MATLAB hlásil chyby v rozměrech matic, proto je třeba striktně rozlišovat operace maticové a po prvcích. Výsledky jsou obecně různé.

Příklad 3 Připravte si testovací proměnné Vymažte předchozí příkazem clear >> A = [1 3; 2 0; 4-1] >> B = [1 2 2 2; 2 1 0 3; 1 1 2 6] >> C = [1 3 4 0; 1 2 0 4] >> u = [3 2-1] >> D = [2 0; 4 0; 6 2] >> E = [2 0 0; 0 4 0; 0 0 6] >> F = [1 1 1; 2 2 2; 1 2 3] >> G = [2+i -1+i; 3+i -2-i]

Příklad 3 Zkuste a nalezněte chyby: >> +u >> -u >> G' >> G.' >> A+D >> u-f >> u-2,1 >> A*E >> D*A >> c*5 >> A.*E >> D.*A >> F^2 >> D^3 >> 2^3 >> G.^4 >> A.^D >> A.^E >> u/e >> u/f >> A/3 >> A./3 >> 2/5 >> 2./5 >> A./D >> D./A >> u./f >> b=u' >> E\b >> 3\A >> 3.\A >> D.\A >> A.\D >> F.\u >> E.\A

Příklad 3 - řešení Chybné >> +u >> -u >> G' >> G.' >> A+D >> u-f >> u-2,1 >> A*E >> D*A >> c*5 >> A.*E >> D.*A >> F^2 >> D^3 >> 2^3 >> G.^4 >> A.^D >> A.^E >> u/e >> u/f >> A/3 >> A./3 >> 2/5 >> 2./5 >> A./D >> D./A >> u./f >> b=u' >> E\b >> 3\A >> 3.\A >> D.\A >> A.\D >> F.\u >> E.\A

Řetězce Jedná se o pole znaků anglické abecedy Nedoporučuje se používat diakritiku Text se vkládá mezi apostrofy 'nazdarek kasparek' >> s = 'nazdarek kasparek ; Vkládá-li se text do matic, je nutné, aby všechny řetězce měly stejný počet znaků (=chybějící se doplňují mezerami) Výpis se provede zavoláním proměnné >> s Použitím funkce disp(s), error (s) Práce s řetězci použití knihovních funkcí strcpm, upper, lower, str2num, num2str Více pomocí help strfun

Podmíněný příkaz Podmínění provedení příkazů prostřednictvím podmínky if if podmínka end příkazy podmínka je libovolný výraz s logickou hodnotou 0 nebo 1 (relační, binární operátory) příkazy jsou provedeny v případě splnění podmínky, protože jich může být více, ukončujeme je klíčovým slovem end. Jednotlivé příkazy if se mohou vnořovat

Příklad 4 Vypište gratulaci, když student dostane jedničku Definujte proměnnou znamka Napište podmínku při jejíž splnění se má vypsat řetězec 'Gratuluji! Lepsi to byt nemohlo!'

Příklad 4 - řešení Vypište gratulaci, když student dostane jedničku Definujte proměnnou znamka Napište podmínku při jejíž splnění se má vypsat řetězec 'Gratuluji! Lepsi to byt nemohlo!' >> znamka=3; >> if znamka==1 zprava='gratuluji! Lepsi to byt nemohlo!' end Protože proměnná znamka neobsahovala číslo 1, text se nevytvořil, opravte první řádek na >> znamka=1; a napište znovu podmínku, text se vypíše

Příklad 4 alternativa 1 Pokud chceme sdělit něco i ostatním studentům, použijeme příkazu else, elseif >> znamka=3; >> if znamka==1 zprava='gratuluji! Lepsi to byt nemohlo!' elseif znamka<4 zprava='gratuluji! Ale mohlo to byt lepsi!' else zprava='lituji! Uvidime se priste!' end vypíše se text Gratuluji! Ale mohlo to byt lepsi!

Příklad 4 alternativa 2 Pokud chceme sdělit něco i ostatním studentům, použijeme příkazu else, elseif >> znamka=4; >> if znamka==1 zprava='gratuluji! Lepsi to byt nemohlo!' elseif znamka<4 zprava='gratuluji! Ale mohlo to byt lepsi!' else zprava='lituji! Uvidime se priste!' end vypíše se text Lituji! Uvidime se priste!

Funkce if, elseif, else Pokud testujeme i jiné možnosti pomocí else, elseif je nutné dodržet několik pravidel >> if podminka1 prikazy1 elseif podminka2 prikazy2 else prikazy3 end.větev if musí být právě jedna, větev elseif nemusí být vůbec, případně jich může být víc, větev else musí být právě jedna.

M-soubory M-soubory slouží k ukládání posloupností příkazů (skriptů) nebo k ukládání uživatelských funkcí. Jsou to obyčejné textové soubory, proto je možné je psát v jakémkoli textovém editoru, pro vyšší komfort uživatelů MATLABu je jeden přímo součástí systému: M-editor/Debugger, který se otevírá v samostatném okně. File Open otevřením stávajícího M-souboru File New M-file vytvoření nového M-souboru

Vytvoření skriptu Nastavení pracovního adresáře Vytvoření, nebo otevření stávajícího skriptu: File Open otevřením stávajícího M-souboru File New M-file vytvoření nového M-souboru Zápis skriptu zapíšeme všechny potřebné příkazy podobně jako v příkazovém okně, jen s tím rozdílem, že se příkazy neprovádějí. Uložení skriptu File Save Jméno skriptu musí splňovat stejná pravidla jako název proměnné

Spuštění skriptu Nastavení pracovního adresáře V příkazovém okně stačí zadat jméno m-souboru bez přípony Přímo v editoru pomocí Debug Run (klávesa F5) Zobrazení M-souboru Obsah skriptu uvidíme v M-editoru/Debuggeru Nebo v příkazovém okně příkazem type název, kde název je jméno skriptu (bez přípony). Pozn.: skripty pracují s poroměnnými pracovního prostředí a můžou vytvářet nové, či stávající měnit, ty pak v prostředí zůstávájí i po jejich skončení

Uživatelská funkce Pokud je třeba měnit parametry používané skriptem je mnohem výhodnější vytvořit uživatelskou funkci. Funkce jsou M-soubory, které mají jasně definovanou strukturu. Funkce akceptují vstupní parametry, které mohou mít při opakovaném spuštění vždy novou hodnotu. Nelze použít žádné jiné proměnné, než které funkci předáváme, nebo ty, které si sama vytvoří Všechny proměnné (i ty, které obsahují vypočtené výsledky) po skončení funkce zaniknou, jediný způsob, který uchová proměnné je jejich deklarování jako výstupní proměnné Pokud funkce nemá žádné vstupní parametry, můžeme její příkazy napsat jako skript

Vytvoření funkce Nastavení pracovního adresáře Vytvoření, nebo otevření stávající funkce: File Open otevřením stávajícího M-souboru File New M-file vytvoření nového M-souboru Zápis funkce První řádek obsahuje název funkce, po něm mohou následovat řádky s nápovědou k funkci a zbytek tvoří příkazy potřebné k výpočtu výstupů za použití jejích vstupů Uložení skriptu File Save Jméno skriptu musí splňovat stejná pravidla jako název proměnné a musí souhlasit se jménem funkce, jinak by nešla spustit

Definice funkce První řádek má tvar: function [výstupy] = jméno funkce (vstupy) klíčové výstupy název vstupní paraslovo funkce funkce metry funkce výstupy: je-li jich více, oddělují se čárkou je-li jen jeden, nejsou závorky nutné funkce nemusí mít žádný výstup jméno_funkce: mělo by vystihovat činnost funkce musí splňovat pravidla pro názvy proměnných (jinak nepůjde funkce spustit) vstupy: je-li jich víc, oddělují se čárkou funkce nemusí mít žádný

Nápověda funkce Není povinnou součástí funkce, ale významně usnadňuje používání dané funkce. Začíná druhým řádkem, pokud je tento řádek komentářem, končí jakýmkoliv řádkem, který už není komentářem. Nápovědu lze zobrazir zavoláním příkazu help jméno_funkce První řádek nápovědy by měl obsahovat jméno funkce, protože je vypisován příkazem lookfor slovo (funkce slouží pro výpis všech funkcí obsahující dané slovo), nebo při výpisu nápovědy pro nějaký adresář help C:\temp\matlab

Příkazy funkce pro výpis chyby a ukončení funkce lze použít příkaz error, jejímž parametrem je text chybového hlášení mimo nápovědy je vhodné používat při tvorbě funkce komentáře vlastního skriptu, aby již nikdy nebylo zapomenuto, co který řádek vykonal pro řešení složitých problémů je vhodné vytvořit funkce řešící triviální výpočty a ty pak volat nějakou nadřazenou funkcí řešící složitý problém příklad funkce: function [prep] = prepona (odvesna1,odvesna2) % PREPONA vypocet prepony pravouhleho trojuhelniku prep = (odvesna1^2 + odvesna2^2) ^0.5; %pouziti Pythagorovy věty

Spuštění funkce Uloženou funkci můžeme spustit z pracovního okna příkazem: [vystupy] = jmeno_funkce(vstupy) výstupy se uloží do proměnné vystupy, nebo jmeno_funkce(vstupy), výsledky se neuloží Počet a pořadí vstupních argumentů se musí shodovat s definicí funkce Nejsme povinni odebírat výstupní proměnné, ale pokud tak učiníme, měl by být dodržen jejich počet Pokud je po spuštění hlášena chyba zkontrolujte: Je správně zadáno jméno funkce? Souhlasí počet vstupních parametrů? Je funkce správně uložena? Jsme ve správném adresáři? Někdy pomůže smazání všech proměnných v pracovním prostoru

Další práce s funkcí Zobrazení nápovědy k funkci help jmeno_funkce Zobrazení kódu funkce type jmeno_funkce Zjišťování počtu skutečných vstupních a výstupních argumentů, např. v případě, kdy máme proměnný počet vstupních dat Pro vstupní parametry lze využít funkce nargin, která nemá žádné vstupy a vrací skutečný počet parametrů s nimiž byla funkce spuštěna. Pro výstupní použijeme funkci nargout s podobnými vlastnostmi jako nargin

Ladění funkce Pokud jsou ve funkci chyby a nemůžeme-li jejich příčinu nalézt pouhým přečtením, použijeme Debugger (odvšivovač), který mám nabízí možnost krokování (=ladění) V M-editoru nastavíme breakpoint (F12) na nějakém řádku s příkazem Spustíme funkci s jejími parametry (z příkazového okna) a v příkazovém okně se objeví K a v M-editoru svítí zelená šipka před řádkem, který bude následně zpracován Pomocí F10 a F11 v M-editoru krokujeme (spouštíme jednotlivé příkazy) výsledek kontrolujeme pomocí myši Výsledkem je nalezení chyby a její odstranění Kdykoli je s funkcí nějaký problém je nutné KROKOVAT!!

Speciální znaky Závorky (hranaté, kulaté, složené) Symboly (mezera, čárka, středník, tečka, rovnítko, apostrof, procento, dvojtečka) Další znaky vyskytující se jako součásti operátorů, nebo názvů proměnných (hvězdička, zavináč, atp.) Výpis všech znaků možno získat v nápovědě voláním help ops

Knihovní funkce Vedle uživatelem vytvořených funkcí obsahuje MATLAB mnoho funkcí jichž můžeme efektivně využívat při řešení vlastních problémů. Práce s nimi je obdobná jako u funkcí uživattelských lookfor hledane_slovo výpis H1 řádku nápovědy všech nalezených funkcí help nazev_funkce výpis nápovědy funkce type jmeno_funkce výpis kódu funkce Rozdělění funkcí Skalární Vektorové Maticové Funkce pro vytváření matic Funkce pro zjišťování rozměrů proměnných Funkce pro výpis řetězců Funkce pro 2-D a 3-D grafiku.další funkce

Řešení soustav lineárních rovnic Soustavu Ax=b řešíme pomocí operátoru \ nebo pomocí inverzní matice (funkce inv). V každém případě je vždy potřeba ověřit řešitelnost soustavy, například pomocí výpočtu determinantu (funkce det): soustava.m function x=soustava(a,b) % SOUSTAVA - reseni soustavy linearnich rovnic % A... matice soustavy % b... vektor pravych stran % x... reseni soustavy if det(a)==0 error('soustava nema řeseni!') end x = A\b; % vypocet reseni; % DRUHA MOZNOST:x=inv(A)*b;

Řešení soustav lineárních rovnic Spuštění funkce M = [3 2 1; 1 0 1; 2 1-1]; v = [5; 4; 2]; reseni = soustava (M,v) % spusteni funkce reseni = 1.5000 1.5000 2.5000 M*reseni % overeni spravnosti reseni ans = 5 4 2

Cykly Cyklus slouží pro zápis příkazů, které mají být prováděny opakovaně. Počet opakování těchto příkazů závisí na nějaké podmínce nebo může být předem známý. Proto existují dva základní typy cyklů: cyklus řízený podmínkou (zvaný též indukční cyklus; v MATLABu realizovaný pomocí while) cyklus s předem známým počtem opakování (zvaný též iterační cyklus nebo cyklus s výčtem hodnot; v MATLABu realizovaný pomocí for) Příkazy uvnitř cyklu se nazývají tělo cyklu.

Cyklus while Cyklus while začíná klíčovým slovem while a končí klíčovým slovem end: while podmínka příkazy end podmínka (řídicí podmínka cyklu) je libovolný výraz s logickou hodnotou 0 nebo 1 (většinou se v podmínkách používají relační nebo binární logické operátory) příkazy v těle cyklu jsou jakékoli příkazy, které se mají provádět opakovaně v případě splnění podmínky

Cyklus while Cyklus while začíná klíčovým slovem while a končí klíčovým slovem end: while podmínka příkazy end podmínka (řídicí podmínka cyklu) je libovolný výraz s logickou hodnotou 0 nebo 1 (většinou se v podmínkách používají relační nebo binární logické operátory) příkazy v těle cyklu jsou jakékoli příkazy, které se mají provádět opakovaně v případě splnění podmínky Pozn: vytvoří-li se nekonečný cyklus je možno jeho provádění přerušit ctrl+c

Příklad: cyklus while Vytvořte funkci pro výpočet faktoriálu zadaného čísla (na principu: n!=n(n-1)(n-2)...1):

Příklad: cyklus while Vytvořte funkci pro výpočet faktoriálu zadaného čísla (na principu: n!=n(n-1)(n-2)...1): fakt1.m function f=fakt1(n) % FAKT1 - vypocet faktorialu celeho cisla % f=fakt1(n) % n... cislo % f... faktorial (f=n!) if n<0 % kontrola vstupu error('faktorial neexistuje') % KONEC, nic se nepocita end f = 1; % priprava vysledku while n>1 % dokud je co pridat do vysledku f = f*n; % pridava do vysledku n = n-1; % postupne snizuje 'n' end % nakonec je 'n' =1 a 'f' obsahuje faktorial 'n'

Cyklus for Cyklus for začíná klíčovým slovem for a končí klíčovým slovem end: for proměnná=výraz příkazy end proměnná (řídicí proměnná cyklu) je libovolný název proměnné výraz je jakýkoli výraz, jehož délka (velikost) udává počet opakování. Většinou se jedná o vektor, který bývá generován pomocí operátoru dvojtečka příkazy v těle cyklu jsou jakékoli příkazy, které se mají provádět opakovaně v případě splnění podmínky

Příklad: cyklus for Vytvořte funkci pro výpočet faktoriálu zadaného čísla (na principu: n!=1*2*...*(n-1)*n):

Příklad: cyklus for Vytvořte funkci pro výpočet faktoriálu zadaného čísla (na principu: n!=1*2*...*(n-1)*n): fakt2.m function f=fakt2(n) % FAKT2 - vypocet faktorialu celeho cisla % f=fakt2(n) % n... cislo % f... faktorial (f=n!) if n<0 % kontrola vstupu error('faktorial neexistuje') % KONEC,nic se nepocita end f = 1; % priprava vysledku for i=1:n % n-krat, anebo: i=2:n (usetrime nasobeni 1x) f = f*i; % pridava do vysledku end % nakonec 'i' = 'n' a 'f' obsahuje jeho faktorial 'n'

2D grafika MATLAB umožňuje uživatelsky velmi příjemnou a snadnou vizualizaci dat. Má velmi široké možnosti úpravy a práce s 2-D grafy. Pro tyto činnosti je v MATLABU vytvořen grafický režim takzvaných grafických oken. Obecný postup práce s grafikou Příprava dat Výběr grafického okna, případně podokna Vykreslení grafu Popis grafu Nastavení os, mřížky a případně další úpravy Uložení grafu do souboru (obrázek)

Výběr grafického okna Grafické funkce automaticky otevřou nové grafické okno, pokud doposud neexistovalo (Figure No. 1). V případě, že už nějaké otevřeno bylo, je pro vykreslování použito to, které je aktivní (poslední otevřené, nebo na které bylo naposledy kliknuto). Chceme-li otevřít (použít) nějaké konkrétní okno, použijeme funkci figure s parametrem n: figure (n) Chceme li otevřít nové okno, použijeme funkci figure bez parametru

Zavření grafického okna K uzavření grafického okna použijeme funkci close close zavře aktivní grafické okno close (n) zavře grafické okno s názvem Figure No. n close all zavře všechna grafická okna

Kreslení bodového grafu K vykreslení grafu zadaného pomocí hodnot ve vektoru (vektorech) slouží funkce plot plot (y) vykreslí hodnoty vektoru y v závislosti na pořadí plot (x,y) vykreslí hodnoty vektoru y v závislosti na hodnotách vektoru x plot (x,y,str) vykreslí hodnoty vektoru y v závislosti na hodnotách vektoru x a pomocí řetězce str ovlivní výsledný vzhled grafu: barvu, značky, čáry, typ značky, typ čáry Proměnná str obsahuje až tři hodnoty vlastností, v pořadí barva, typ značky a typ čáry.

Funkce plot plot (x,y,str) Barva Značka Typ čáry b modrá. tečka - plná g zelená o kolečko : tečkovaná r červená x křížek -. čerchovan á c sv.modrá + křížek -- čárkovaná m fialová * hvězda y žlutá s čtverec k černá d diamant v trojúhelník dolů ^ trojúhelník nahoru > trojúhelník vpravo < trojúhelník vlevo p pentagram h hexagram

Příklad funkce plot >> x=-1:0.01:1; plot(x,2*x.^3-.5*x.^2-x+1,'k')

Popisky grafu Graf je možno popsat pomocí funkcí xlabel, ylabel, title, text a legend. title(popisek) - přidání názvu grafu xlabel(popisek) - přidání popisu osy x ylabel(popisek) - přidání popisu osy y Chceme-li přidat ke grafu legendu (popsat více grafů v jednom okně), použijeme funkci legend(text1,text2,...), jejímiž parametry jsou texty popisující všechny vykreslené grafy (v pořadí daném vykreslováním těchto grafů), např.: legend('graf1','graf2','graf3','graf4')

Popisky grafu popisek je libovolný řetězec, který může obsahovat speciální znaky Znak Zápis Znak Zápis Znak Zápis \alpha \beta \gamma \delta \epsilon \omega \lambda \xi \pi \rho \sigma \tau \sigma \Delta \Sigma \nabla \partial \infty \surd \int \neq \in \subset \subseteq \leq \geq \uparrow \wedge \vee \downarrow \leftrightarro w \leftarrow \rightarrow \neg \forall \exists

Více grafů v okně Pro vykreslení více grafů do téhož (pod)okna, můžeme použít dva způsoby: funkci plot, které předáme jako parametry všechny vykreslované grafy (u každého může být také uvedena barva, značka a typ čáry): >> x=-pi:pi/25:pi; % nezavisle promenna >> y1=sin(x); y2=cos(x); y3=sin(x).^2;% 3 funkce >> plot(x,y1,'r',x,y2,'b',x,y3,'k') % tri barvy grafů v jednom >> plot(x,y1,'r',x,y2,x,y3,'k') % totez:modra barva se nemusi zadavat >> xlabel('x') % popis osy x >> title('grafy 3 funkci') % nazev grafu >> legend('sin(x)', 'cos(x)', 'sin^2(x)') % pridani legendy ke grafu

Více grafů v okně příkaz hold on, který "zapne" možnost přikreslovat do grafického okna jiné grafy, aniž by "zmizel" graf již nakreslený. Standardní stav (kdy se graf překresluje) pak docílíme příkazem hold off: >> x=-pi:pi/25:pi; % nezavisle promenna >> y1=sin(x); y2=cos(x); y3=sin(x).^2;% 3 funkce >> plot(x,y1,'r') % prvni graf (cerveny) >> hold on % prikreslime neco dalsiho >> plot(x,y2) % prvni graf (modry - netreba udavat barvu) >> plot(x,y3,'k') % treti graf (cerny) >> xlabel('x') % popis osy x >> title('grafy 3 funkci') % nazev grafu >> legend('sin(x)', 'cos(x)', 'sin^2(x)') % pridani legendy grafu >> hold off % uz nic prikreslovat nebudeme

Více grafů v okně Výsledek je v obou případech stejný:

Volba zobrazení os Ke změně rozsahu osy x použijeme příkaz xlim(v), kde v je vektor obsahující min. a maxi. hodnotu na ose x. >> xlim([-5 2.3]) % 1. zpusob >> osa_x=[-5 2.3]; xlim(osa_x) % 2. zpusob Ke změně rozsahu osy y použijeme příkaz ylim(v), kde v je vektor obsahující min. a max. hodnotu na ose y. >> ylim([0.5 12.5])% 1. zpusob >> osa_y=[0.5 12.5]; ylim(osa_y) % 2. zpusob Pro změnu rozsahu obou os (x i y) lze použít příkaz axis(v), kde v je vektor obsahující min. hodnotu na ose x, max. hodnotu na ose x, min. hodnotu na ose y a max. hodnotu na ose y. >> axis([-5 2.3 0.5 12.5]) % 1. zpusob >> rozsah=[-5 2.3 0.5 12.5]; axis(rozsah) % 2. zpusob

Zobrazení mřížky Pro zobrazení mřížky můžeme využít příkazů grid on a grid of: grid on - zobrazí mřížku grid off - vypne zobrazení mřížky (implicitně nastaveno)

Části grafického okna Pro rozdělení grafického okna na více částí pro navzájem nezávislé grafy, použijeme funkci subplot, která vymezí konkrétní část grafického okna a aktivuje ji pro vykreslování: subplot(m,n,c) - funkce si "představí" grafické okno jako matici mxn, očísluje si jednotlivé buňky (zleva doprava, odshora dolů) a aktivuje právě jednu - c-té podokno. Pokud je v jeho místě již jiné podokno, bude staré podokno odstraněno. Funkce subplot vytváří pouze JEDNO podokno, takže ji většinou musíme volat vícekrát: >> x=0:pi/20:2*pi; >> subplot(3,1,1); plot(x,sin(x),'k'), title('sin x') >> subplot(3,1,2); plot(x,sin(x.^2),'k'), title('sin x^2') >> subplot(3,1,3); plot(x,sin(x).^2,'k'), title('sin^2x')

Vytvoří se: Části grafického okna

Části grafického okna Lze kombinovat podokna různé délky či šířky, pouze se nesmějí vzájemně překrývat: >> x=-1:0.01:1; >> subplot(2,2,1); plot(x,2*x.^2+1,'k'), title('2x^2+1') >> subplot(2,4,3); plot(x,x.^3,'k'), title('x^3') >> subplot(2,4,4); plot(x,x.^5,'k'), title('x^5') >> subplot(2,1,2); plot(x,x.^2-0.25,'k'), title('x^2-0.25')

Získáme: Části grafického okna >> subplot(2,2,1) >> subplot(2,4,3) >> subplot(2,4,4) >> subplot(2,1,2)

Nástroje grafického okna Grafické okno lze upravovat pomocí panelu nástrojů (není-li: aktivuje se v Figure Toolbar v menu View): Znak Funkce Znak Funkce otevře nové grafické okno otevře uložený graf (*.fig) uloží graf do souboru(*.fig) odešle graf na tiskárnu umožňuje měnit vlastnosti objektů v grafickém okně umožňuje přidat do grafu text umožňuje přidat do grafu šipky umožňuje přidat do grafu čáry lupa - zvětšení v místě kliknutí lupa - zmenšení v místě kliknutí rotace (u 3D grafů)

Uložení grafu do souboru uložení grafu jako obrázek, který je možno vkládat do dokumentů (texty v MS Wordu, www stránky,...): menu File Export... vyplnění údajů v dialogovém okně "Export": výběr cílového adresáře výběr typu souboru (např. pro vložení do MS Wordu lze použít formát BMP (bezeztrátový), JPG nebo PNG, pro LaTeX formát EPS...) zadání jména souboru aktivace tlačítka Save (tím se vytvoří obrázkový soubor; někdy uložení trvá déle, a proto počkejte se zavíráním grafických oken, dokud nezmizí přesýpací hodiny na kurzoru myši)

Uložení grafu do souboru uložení grafu jako soubor *.fig, který umí zobrazit MATLAB: menu File Save as... (nebo Save) výběr cílového adresáře kontrola typu souboru (*.fig) zadání jména souboru aktivace tlačítka Save Poznámka: soubor typu FIG lze otevřít v MATLABu (např. přes menu File Open) - otevře se uložené grafické okno.

3D grafika MATLAB umožňuje vizualizovat také funkce dvou proměnných. Používáme podobný postup: příprava dat (nezávisle proměnné, závisle proměnná) výběr grafického okna, případně podokna vykreslení 3D grafu úpravy grafu uložení grafu do souboru

3D grafika - příprava dat Je třeba mít dvě matice (např. X,Y), jejichž prvky X(i,j),Y(i,j) budou obsahovat souřadnice bodů v rovině. Ke snadnému generování těchto matic slouží funkce meshgrid: [X,Y]=meshgrid(v1,v2) - vektor v1 určuje interval na ose x s daným krokem a vektor v2 určuje interval na ose y s daným krokem [X,Y]=meshgrid(v) - vektor v určuje interval na ose x i na ose y >> [X,Y]=meshgrid([-3:1],[-1:2:7]) X = -3-2 -1 0 1 Y = -1-1 -1-1 -1-3 -2-1 0 1 1 1 1 1 1-3 -2-1 0 1 3 3 3 3 3-3 -2-1 0 1 5 5 5 5 5-3 -2-1 0 1 7 7 7 7 7

3D grafika - příprava dat Kromě nezávisle proměnných potřebujeme vytvořit také matici funkčních hodnot. Např. pro funkci f(x,y)=cos(x 2 )-sin(y 3 ) vytvoříme matici Z: >> Z=cos(X.^2)-sin(Y.^3);

3D grafika - vykreslení grafu Lze zvolit z několika možností: plot3(x,y,z), případně plot3(x,y,z,řetězec), vykreslí graf jako jednotlivé čáry, pomocí řetězce můžeme nastavit barvu, značky a typ čar mesh(x,y,z)vykreslí 3D graf, body spojuje navzájem ve směru obou os (výsledkem je "drátěný model" = "síť") surf(x,y,z) vykreslí 3D graf, body spojuje navzájem ve směru obou os a vzniklé plošky vyplní barvou contour(z) vykreslí vrstevnice funkce dvou proměnných (2D graf). Příkaz contour(z,n)vykreslí vrstevnice v n rovinách, např. contour(z,5). Příkaz Contour(Z,v)vykreslí vrstevnice v rovinách zadaných vektorem v, např. contour(z,[-2 0.5.8 1]) meshc(x,y,z)vykreslí 3D "síťový" graf s vrstevnicemi surfc(x,y,z)vykreslí 3D "ploškový" graf s vrstevnicemi

3D grafika - vykreslení grafu [X,Y] = meshgrid(-3:.125:3); Z = peaks(x,y); %peaks je knihovni funkce MATLABu meshc(x,y,z); axis([-3 3-3 3-10 5])

3D grafika - úpravy grafu Pro popis 3D grafu se použije funkce xlabel, ylabel a title. Osu z, lze popsat pomocí funkce zlabel(text), kde text je libovolný řetězec obsahující kýžený popis Změna barevné palety se provede příkazem colormap(paleta), kde paleta je předdefinovaná nebo uživatelská. Předdefinovaná je např. šedá gray, žlutočervená bone, duhová hsv,...viz nápověda. Uživatelská paleta se vytvoří pomocí matice Nx3, kde N je celkový počet barev v paletě a hodnoty jsou od 0.0 do 1.0, každý řádek představuje jednu barvu definovanou pomocí RGB (red-green-blue). Nula znamená 0% podíl dané barvy, jednička 100% podíl dané barvy. Takže černá barva je 0 0 0, červená 1 0 0, atd. >> M=[0 0 0; 0.2 0; 0.4 0; 0.6 0; 0.8 0; 0 1 0]; >> colormap(m)

3D grafika - úpravy grafu Přidání sloupce s použitou paletou se provede příkazem colorbar, po změně barevné palety musíme tuto funkci použít znovu, pro zobrazení řádku (ne sloupce), lze použít: colorbar('horiz') K definování úhlu pohledu (otočení grafu) se používá funkce view(az,el), která nastaví úhel pohledu na graf: az je azimut = úhel otočení kolem osy z měřený od záporné části osy y proti směru hodinových ručiček (0 až 180) nebo po směru (-180 až 0); el je elevace = výška zorného bodu, tj. úhel mezi pozorovatelem a rovinou xy (0 až 180: oko je nad objektem, -180 až 0: oko je pod objektem). Standardní nastavení pohledu na 3D graf obnovíme pomocí view(3) (odpovídá nastavení az=-37.5, el=30). Pomocí [a,e] = view se uloží aktuální hodnoty azimutu a elevace do proměnných a a e.

Aproximace dat polynomem Aproximaci n-tého stupně, lze provést pomocí funkce polyfit, která používá metodu nejmenších čtverců: p=polyfit(x,y,n), kde x je vektor hodnot nezávisle proměnné, y je vektor hodnot závisle proměnné, n je stupeň polynomu, jímž chceme aproximovat body [x i,y i ] a p je vektor koeficientů výsledného polynomu P(x), přičemž P(x)=p(1)x n +p(2)x n-1 +...+p(n)x+p(n+1) Hodnoty polynomu P(x) ve všech prvcích vektoru x (např. kvůli grafickému znázornění), vyčíslí funkce polyval: y_aprox=polyval(p,x), kde p je vektor koeficientů aproximačního polynomu, x je vektor hodnot nezávisle proměnné a y_aprox je vektor hodnot aproximačního polynomu. Součet čtverců odchylek S=sum((y_aprox-y).^2)

Příklad aproximace Aproximujte 8 hodnot u a v polynomem 2. stupně. >> u=[1 1.5 2.1 2.5 3 3.1 3.2 3.5]; % data, nezavisla promenna >> v=[7.8 8.15 8.3 8.25 8.1 8.3 8.35 8.2]; % data, zavisla promenna >> p=polyfit(u,v,2) % koeficienty polynomu 2. stupne pro 'u' a 'v' p = -0.1684 0.8977 7.1150 >> v_aprox=polyval(p,u); % hodnoty polynomu v 'u >> S=sum((v_aprox-v).^2) % soucet ctvercu odchylek S = 0.0345 >> plot(u,v,'r+') % graf puvodni data jako cervene krizky >> hold on % prikreslime další >> plot(u,v_aprox,'k.-') % graf polynomu, cerne body s carou >> axis([0.8 3.7 7.7 8.4]) % uprava os >> title('data a jejich aproximace parabolou')% nazev grafu >> legend('data','aproximacni polynom',4) %zobrazime legendu vpravo dole

Příklad aproximace Aproximujte 8 hodnot u a v polynomem 2. stupně.

Příklad aproximace >> plot(min(u):0.05:max(u),polyval(p,min(u):0.05:max(u)),'k',u,v_aprox,'k.')...menší krok