MATLAB základy Roman Stanec 27.9.2007 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 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) 3
Prostředí MATLABu 7, RC14 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 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 6
Příklady 1 Vypočítejte obvod kruhu o poloměru 1m Vypočítejte hodnotu sinus 40 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 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 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) 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 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 (A m,n B n,p ) A*B (výsledná matice má rozměr m,p) 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 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)) 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 15