MATLAB základy 27.9.2007
Roman Stanec
PEF MZLU
Náplň cvičení Matlab – představení a motivace Seznámení s prostředím Proměnné a výrazy Řídící struktury Funkce Základní úpravy matic Import dat z tabulkového kalkulátoru Export dat z Matlabu do tabulkového kalkulátoru
Roman Stanec, PEF MZLU, 27.9.2007
2
MATLAB - představení, motivace MATLAB (MATrix LABoratory), MathWorks, Inc. Výkonný jazyk pro technické výpočty Standardní využití v akademické sféře: Lineární algebra Numerické výpočty a analýza
Praktické příklady z komerční sféry: Stanovení dráhy letu plactva v okolí letišť a armádních prostor (protekce srážek ptactva s letadly) Snižování hladiny hluku v automobilech (automobilka FORD) testy externích zařízení (např. GPS přijímač) přes RS-232 (sériové rozhranní COM1/2)
Roman Stanec, PEF MZLU, 27.9.2007
3
Prostředí MATLABu 7, RC14
Roman Stanec, PEF MZLU, 27.9.2007
4
Okno příkazů (Command window) Základní ovládání ENTER – provedení operace ; (středník) – potlačení výstupu do okna příkazů CTRL+C – přerušení probíhajícího výpočtu ↑,↓ - procházení historie příkazů clc – příkaz na vymazání okna příkazů
Nejdůležitější příkazy - “help” a “lookfor” help elfun – nápověda k elementárním fcím help elmat – nápověda k elemetárnímu matic. počtu help <specfun | matfun | ...> alternativně: helpwin – otevře nápovědu v novém okně lookfor <část slova/fráze> – hledá i v popisu funkcí např.: lookfor inverse vrátí jména fcí, které provádí nějakou inverzi Roman Stanec, PEF MZLU, 27.9.2007
5
Proměnné a výrazy Implictní proměnná ans (answer) – hodnota naposledy provedeného výrazu
Základní operace s proměnnými: A=1+1; B=2^2; C=(A+B)/2; – přiřazení hodnoty výrazu disp(A) – zobrazení hodnoty proměnné A who / whos – výpis všech nastavených proměnných clear A – smazání proměnné A clear – smazání všech proměnných save cv1.mat – uložení všech proměnných do souboru save cv1.mat A B – uložení proměnných A a B do souboru load cv1 – načtení proměnných ze souboru cv1
pi – konstanta π, použitelná ve výrazech Roman Stanec, PEF MZLU, 27.9.2007
6
Příklady 1 Vypočítejte obvod kruhu o poloměru 1m Vypočítejte hodnotu sinus 40˚
Roman Stanec, PEF MZLU, 27.9.2007
7
Řídící struktury - větvení Větvení if (podmínka) tělo větve
elseif (podmínka) tělo větve
else tělo větve
end
Roman Stanec, PEF MZLU, 27.9.2007
8
Řídící struktury - cykly cyklus while while (podmínka) tělo cyklu
end
cyklus for for var=start:stop tělo cyklu
end for var=start:increment:stop tělo cyklu
end for var=[2 3 5 7 11] tělo cyklu
end Roman Stanec, PEF MZLU, 27.9.2007
9
Funkce Inline definice: objem_kvadru=inline('a*b*c','a','b','c'); objem_kvadru(2,3,4) ans=24
definice v souboru: vytvořit soubor objem_kvadru.m obsah: function y=objem_kvadru(a,b,c) y=(a*b*c);
vyvolat: objem_kvadru(2,3,4)
Roman Stanec, PEF MZLU, 27.9.2007
10
Základní úpravy matic (1) Zadání matice řádkový vektor: r=[1 2 3]; nebo r=[1,2,3]; sloupcový vektor: c=[1;2;3] prázdný vektor v=[] zadání matice výčtem: A=[1 2 3; 4 5 6; 7 8 9]; nebo A=[1,2,3; 4,5,6; 7,8,9]
zadání matice intervalem: A=[1:3; 4:6; 7:9]
generování dürerova magického čtverce A=magic(4);
Přístup k prvkům matice A(i,j) – vrátí prvek na i-tém řádku v j-tém slouci A(i,1:3) – vrátí prvky na i-tém řádku ve sloupcích 1,2,3 A(:,j) – vrátí všechny prvky sloupce j Roman Stanec, PEF MZLU, 27.9.2007
11
Základní úpravy matic (2) spojení matic C=[A,B] nebo C=[A B]
smazání řádku/sloupce matice A(:,2)=[] - smazání 2.sloupce matice A(2,:)=[] - smazání 2.řádku matice
sčítání/odečítání matic (matice musí mít stejný rozměr!) A+B, A-B
násobení matic (Am,n Bn,p) A*B (výsledná matice má rozměr m,p)
Roman Stanec, PEF MZLU, 27.9.2007
12
Příklady Výměna dvou sloupců matice Mějme dánu matici A: 1 2 3 4
2 4 6 8
3 6 9 12
4 8 12 16
V matici A vyměňte 2. a 3. sloupec
Napište funkci plusjedna(A), která přičte 1 ke každému prvku menšímu než 5
Roman Stanec, PEF MZLU, 27.9.2007
13
Import dat z tabulkového kalkulátoru Postup: v tabulkovém kalkulátoru zadat do buněk data uložit soubor dat jako soubor.csv (nejlépe do pracovního adresáře MATLABu) v MATLABu importovat data do proměnné následovně: A=load('matrix1.csv')
(případně v tabulkovém kalkulátoru uložit soubor ve formátu xls a poté v MATLABu načíst A=xlsread('matrix.csv))
Roman Stanec, PEF MZLU, 27.9.2007
14
Export dat z MATLABu a import v tabulk. kalkulátoru Postup: v MATLABu naplnit proměnnou A daty A=magic(4);
uložit obsah proměnné do souboru: save soubor2.csv A -ascii
načíst soubor2.csv v tabulkovém kalkulátoru
Roman Stanec, PEF MZLU, 27.9.2007
15