Obsah 2. přednášky Začínáme s Matlabem: přiřazení proměnné, výrazy, operátory, volání funkcí vektory, operace s vektory úvod do matic, stručně o operacích s maticemi m-skripty (K ilustraci bude používán a modifkován příklad z 1. přednášky.) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 1
Výpočty, výrazy, přiřazení Elementární operací Matlabu je vyhodnocení výrazu. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. . Zapíšeme výraz (jako na kalkulačce). >> 1+8 ans = 9 >> ans * 3 27 >> Matlab vypočítá a zobrazí výsledek. Není-li uvedeno jinak, zapamatuje se výsledek pro pozdější použití v systémové proměnné ans. Uložený výsledek poslední operace lze využít v operaci další. 2
Výpočty, výrazy, přiřazení Elementární operací matlabu je vyhodnocení zadaného výrazu (na pravé straně) a přiřazení výsledné hodnoty do proměnné na levé straně: Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. levá strana = výraz na pravé straně >> a=6 * 3 a = 18 >> b=(a+1)*sin(pi/2) b = 19 >> Předepisujeme, že výsledek má být uložen do proměnné a. Hodnota ans se nemění. Proměnnou, do které byla uložena hodnota, lze používat v dalších výrazech. Matlab má vestavěnou celou řadu funkcí, např. goniometrické funkce. Argument funkce se uvádí v závorce. Ludolfovo číslo π (3,141592653...). 3
Výpočty, výrazy, přiřazení Řízení výpisu: Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Výsledek se automaticky vypíše. >> a=6 * 3 a = 18 >> b=(a+1)*sin(pi/2); >> a=0;b=8; >> Zakončíme-li příkaz středníkem, výsledek se nevypíše. (Příkaz se ale samozřejmě provede a výsledek se uloží buď do explicitně určené proměnné nebo do proměnné ans.) Středník umožní umístit více příkazů na jeden řádek. Oddělovačem zde může být i znak čárka, v tomto případě ale výstup nebude potlačen. >> who Your variables are: a ans b >> clear b >> Při ztrátě orientace v proměných lze použít příkaz who. (V Matlabu obvykle netřeba, seznam proměných se zobrazuje ve zvláštním okně, v Octave použití častější.) clear - zrušení proměnné b (jako by nikdy neexistovala), v Matlabu lze udělat i v seznamu proměnných v okně workspace 4
Řízení výpisu - format matice a vektory se vypisují v tabulkovém tvaru (viz dále), podobu veškerých výpisů (skalárů, prvků vektorů i matic) lze ovlivnit funkcí format: short, long - nastavení počtu desetinných míst - 4 desetinná místa pro short, všechna (7 resp. 14 nebo 15) pro long, u matic a vektorů snaha, aby desetinné tečky byly pod sebou při dodržení maximální šířky výpisu, pokud nelze, výpis v exponentovém (semilogaritmickém) tvaru, modifikace short (long) e (semilogaritnický tvar), short (long) g (pevná des. čárka nebo semilogaritnický tvar), short (long) eng (semilogaritnický tvar, exponent je násobkem 3), + - užitečné pro velké řídké matice - bude se vypisovat znak '+' (plus) pro kladné prvky, '-' (minus) pro záporné prvky a mezera pro nulové prvky, po startu Matlabu je nastaven format short, návrat k tomuto výchozímu stavu je možný zápisem samotného příkazu format bez parametru, více možností (viz help) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 5
Řízení výpisu - format >> format short >> pi ans = 3.1416 Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >> format short >> pi ans = 3.1416 >> format long 3.141592653589793 >> >> format short e >> pi ans = 3.1416e+000 >> format short eng >> 123456*pi 387.8485e+003 >> 6
Proměnné (proměnná = pojmenované paměťové místo) umožňují ukládat hodnoty pod jménem a pak s nimi pod tímto jménem pracovat operace: získání hodnoty změna hodnoty – přiřazení vestavěné speciální proměnné (např. ans, pi, ...) proměnné nemají zafixované datové typy, platí druh poslední přiřazené hodnoty (číslo, textový řetězec, ...) proměnnou nelze použít (tzn. získat její hodnotu) dříve, než je jí nějaká hodnota přiřazena (u interpretovaných jazyků je paměťové místo pro proměnnou vyhrazeno až při prvním přiřazení) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 7
Jména proměnných různá pravidla v různých jazycích, obvykle následující: povolené znaky: písmena, číslice, znak ‘_’ první znak musí být písmeno max. délka obvykle omezena (typicky na 32 znaků) Matlab je case sensitive = rozlišují se velká a malá písmena, podobně je tomu u jazyků vycházejících z jazyka C (C, C++, C#, Java, php, ...), u některých jiných jazyků tomu tak není Tato Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 8
Výrazy x + 7 Operátor: Operand: x + 7 - sin(a/2) základní stavební blok příkazů sám o sobě může sloužit i jako příkaz (u některých jiných jazyků to neplatí) předpis na získání hodnoty (tuto hodnotu lze zobrazit, testovat, uložit do proměnné nebo předat jako argument funkce) operandy, operátory Operátor: unární, binární Operand: konstanta (přímo zapsaná hodnota) proměnná volání funkce Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. operand (levostranný) operand (pravostranný) operátor (binární) x + 7 - sin(a/2) proměnná konstanta volání funkce 9
Funkce jméno reprezentující dílčí výpočet (Tento výpočet může být pomocí tohoto jména volán z kteréhokoli místa programu. Výsledkem výpočtu je nějaká hodnota, která je považována za hodnotu příslušné funkce pro zadané argumenty.) mohou mít vedlejší efekty (např. přiřazení hodnot jistým proměnným nebo provedení vstupních či výstupních operací) vestavěné funkce (dostupné v kterémkoli programu) uživatelem definované funkce výsledek funkce (tzv. návratová hodnota) není povinné využít (v některých jiných jazycích tomu tak není) Podrobnosti o funkcích budou v dalších týdnech. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 10
Volání funkcí Funkce je použita pomocí výrazu volání funkce, který se skládá ze jména funkce následovaného seznamem argumentů v kulatých závorkách. Argumenty mohou být výrazy. Pokud je zadáváno více argumentů, jsou oddělovány čárkami. Pokud funkce nemá žádné argumenty, je možno závorky vynechat. (Není to vhodné, závorky opticky indikují, že se jedná o volání funkce.) (V některých jiných jazycích se závorky u volání bezparametrických funkcí vynechat musí nebo naopak nesmí.) Každá funkce očekává speciální počet argumentů. Např. funkce sin musí být volána s jedním argumentem. Některé funkce mohou mít proměnný počet argumentů v závislosti na použití a jejich chování se liší podle počtu zadaných argumentů (vestavěné i uživatelem definované funkce). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 11
Aritmetické operátory Význam operátorů je uveden pro skalární operandy. Použití a chování těchto operátorů pro matice bude vysvětleno později. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. x + y x – y x y x / y x \ y x ^ y +x –x x’ sčítání odčítání násobení dělení (zprava) dělení zleva umocnění unární plus (nemá účinek) unární minus komplexně sdružené číslo 12
Relační operátory určeny pro porovnávání hodnot, výsledkem je hodnota 1 pro platnou relaci a 0 pro neplatnou relaci. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. menší menší nebo rovno rovno větší nebo rovno větší nerovno x < y x <= y x == y x >= y x > y x ~= y 13
Logické operátory a výrazy operandy jsou chápány jako logické hodnoty (0, 1), nenulová hodnota je považována za pravdivou hodnotu, nulová za nepravdivou, výsledkem je logická hodnota (0, 1), nejčastější použití při kombinování relačních výrazů Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Logické operátory: & logický součin (and) Ù A Ù B A . B | logický součet (or) Ú A Ú B A + B ~ negace (unární operátor) (not) Ø Ø A A Logické operace: A B not A A . B A + B 1 1 1 1 1 1 1 1 1 1 14
Logické operátory a výrazy Booleova algebra řada pravidel a zákonů pro upravování (zjednodušování) výrazů (nikoliv nezbytně nutné znát pro programování, ale velký vliv na čitelnost – přehlednost programů) vhodné si pamatovat alespoň zákon dvojí negace a zákony de Morganovy: Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. ~ (~A) = A ~(A & B) = ~A | ~B ~(A | B) = ~A & ~B ~ (( i < 1) | (i == 10)) ~(i < 1) & ~ (i == 10) (i >= 1) & (i ~= 10) 15
Vyhodnocování výrazů Pořadí použití operátorů je určeno prioritou operátorů. Pořadí lze ovlivnit použitím závorek (kulaté, libovolně mnoho úrovní vnoření). Operátory se stejnou prioritou se aplikují zleva doprava, tzn.: ´ Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. a + b + c je totéž jako (a + b) + c 16
Vyhodnocování výrazů Priority operátorů (od nejnižší po nejvyšší): oddělovače příkazů (středník, čárka) přiřazení (zprava doleva) logický součin a součet relační operátory dvojtečka součet a rozdíl násobení a dělení transpozice, unární plus a minus, negace umocňování Ve sporných nebo nepřehledných případech je výhodné použít závorky (i když by byly teoreticky nadbytečné). ´ Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 17
Příklady zápisu výrazů Matematický zápis: Zápis v Matlabu: 2*b/c a/(b*c) nebo a/b/c (a+sin(x))/b (-b+sqrt(b^2-4*a*c))/(2*a) a<=x & x<=b ´ Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 18
Vektory Všechny proměnné jsou obecně (vícerozměrná) pole. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >> a=[1,2,3,4,9] a = 1 2 3 4 9 >> b=[3;5;0] b = 3 5 >> c=b' c = 3 5 0 >> Naplnění řádkového vektoru (oddělovač čárka nebo mezera). Naplnění sloupcového vektoru (oddělovač středník). Transpozice. V této přednášce bude pouze intuitivní zavedení používání vektorů a matic. Podrobnosti budou v příští přednášce. 19
Vektory Vektory (stejně jako vícerozměrná pole) obsahují tzv. prvky. Lze pracovat s celým vektorem nebo s jednotlivými prvky. Prvek se vybírá pomocí tzv. indexu (pořadové číslo prvku ve vektoru, začíná od 1). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >> a=[1,2,3,4,9] a = 1 2 3 4 9 >> a(5) ans = 9 >> Prvek s indexem 5 (pátý prvek vektoru). 20
Rozsahy Často jsou potřeba vektory, jejichž prvky se liší o konstantní krok (tzn. prvky tvoří aritmetickou posloupnost). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Naplnění řádkového vektoru rozsahem (s krokem 1). >> d=[1:5] d = 1 2 3 4 5 >> e=[0:2:8] e = 0 2 4 6 8 >> Naplnění řádkového vektoru rozsahem (od : krok : do). Dolní i horní mez i krok mohou být neceločíselné hodnoty. 21
Operace s vektory Jsou-li ve výrazech jako operandy použity vektory, provádí Matlab běžné vektorové operace, např.:. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >> d=[1:5] d = 1 2 3 4 5 >> d*2 2 4 6 8 10 >> Vynásobení všech prvků vektoru konstantou. 22
Operace s vektory >> d=[1,3,2] d = 1 3 2 >> d+[5,6,7] Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >> d=[1,3,2] d = 1 3 2 >> d+[5,6,7] 6 9 9 >> d+0.3 1.3000 3.3000 2.3000 >> Součet dvou vektorů. Přičtení konstanty ke každému prvku vektoru. 23
Vektory v minulém příkladu REKAPITULACE Manipulátor pevná délka ramen, možnost natočení: je třeba simulovat pohyb koncového bodu na obrázku již je modelový objekt, v tomto případě kinematické schéma Závislost polohy koncového bodu na natočeních: Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 24
Příklad REKAPITULACE Manipulátor - přechod k výpočtovému modelu Zajímá nás přechod z výchozího stavu do koncového stavu Chceme vykreslit skutečný průběh v náčrtku zeleně znázorněné trajektorie. Předpokládejme, že se natáčení děje konstantní rychlostí a tato rychlost je pro oba natáčecí mechanismy stejná, tzn. že k otočení mezi krajními polohami obou natáčecích mechanismů dojde za stejný čas, dynamické vlastnosti nebudeme uvažovat. Obě natočení budeme od výchozích hodnot zvyšovat o jeden stupeň, pro každou jejich hodnou vypočítáme souřadnice koncového bodu a zaneseme do grafu. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 25
Příklad REKAPITULACE Manipulátor - přechod k výpočtovému modelu De facto vykreslujeme body o souřadnicích celkem to bude 181 bodů. Souřadnice v závislosti na k, které nám zastupuje čas (skutečný čas nás nezajímá), jsou: Zbývá tedy spočítat souřadnice pro každé k a vykreslit graf. To můžeme např. ručně s využitím kalkulačky a milimetrového papíru. Pokud použijeme počítač, můžeme si souřadnice vypočítat a graf nakreslit např. pomocí Excelu. Další možnost je použít nějaký speciální sw pro kinematiku nebo tuto úlohu naprogramovat např. v C++. Dále ukážeme využití sw Matlab. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 26
Příklad Manipulátor - realizace výpočtového modelu v Matlabu Matlab velmi dobře podporuje práci s vektory a maticemi. Do proměnných alfa_1 a alfa_2 (budou to vektory o 181 prvcích) si připravíme hodnoty alfa_1 = (0,1,2,...180) alfa_2 = (-90,-89, ... 90) Tyto hodnoty jsou ve stupních, počítač potřebuje radiány. Proto všechny prvky vektorů ještě vynásobíme hodnotou K tomu všemu postačí použít příkazy: Do proměnné alfa_1 je přiřazen řádkový vektor, jeho prvky jsou definované rozsahem 0:180 (s krokem 1, celkem tedy 181 prvků), všechny prvky jsou dále vynásobeny konstantou pi/180. Hodnoty prvků jsou tedy 0, pi/180, 2*pi/180, ... 180*pi/180. Pro alfa_2 je situace obdobná. Proměnné alfa_1 a alfa_2 jsou řádkové vektory. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. alfa_1 = (0:180)*pi/180; alfa_2 = (-90:90)*pi/180; 27
Příklad Manipulátor - realizace výpočtového modelu v Matlabu Nyní pro každou odpovídající dvojici natočení vypočítáme souřadnice koncového bodu. Opět budeme pracovat s vektory. Je-li argumentem goniometrické funkce vektor, je výsledkem vektor o stejném počtu prvků. Jednotlivé prvky výstupního vektoru jsou hodnoty příslušné goniometrické funkce odpovídajícího prvku argumentu funkce. Proměnná x je řádkový vektor o 181 prvcích. Hodnoty jednotlivých prvků jsou: l_1*cos(0) + l_2*cos(0-90*pi/180), l_1*cos(pi/180) + l_2*cos(pi/180-89*pi/180), ... l_1*cos(pi) + l_2*cos(pi + 90*pi/180) Pro proměnnou y je situace obdobná. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. x = l_1*cos(alfa_1) + l_2*cos(alfa_1+alfa_2); y = l_1*sin(alfa_1) + l_2*sin(alfa_1+alfa_2); 28
Příklad REKAPITULACE Manipulátor - dokončení výpočtového modelu Je třeba ještě určit hodnoty délek ramen, v předchozích příkazech se předpokládalo, že jsou uloženy v proměnných l_1 a l_2. Hodnoty musí být do těchto proměnných přiřazeny dříve, než budou využity pro určení hodnot x a y. Celý výpočtový model zapsaný v Matlabu potom zní: Všimněte si, že proměnné l_1 a l_2 jsou skaláry, obsahují pouze jednu hodnotu. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. l_1 = 1.3; l_2 = 0.7; alfa_1 = (0:180)*pi/180; alfa_2 = (-90:90)*pi/180; x = l_1*cos(alfa_1) + l_2*cos(alfa_1 + alfa_2); y = l_1*sin(alfa_1) + l_2*sin(alfa_1 + alfa_2); 29
Příklad REKAPITULACE Manipulátor - provedení simulace Necháme-li Matlab provést příkazy z předchozího snímku, budou v proměnných x a y výsledné hodnoty. Původně jsme požadovali grafické znázornění dráhy koncového bodu. Tento graf jednoduše obdržíme po zadání příkazu: Druhý příkaz je použit pouze pro lepší orientaci v grafu, způsobí zobrazení mřížky. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(x,y); grid('on'); 30
Příklad - modifikace REKAPITULACE Manipulátor - přechod k výpočtovému modelu Zajímá nás přechod z výchozího stavu do koncového stavu První rameno se tedy opět otočí o 180 stupňů, druhé rameno se však tentokrát za stejnou dobu otočí o 360 stupňů, jeho úhlová rychlost je nyní dvojnásobná než je rychlost prvního ramene. Opět budeme vykreslovat 181 bodů, hodnoty v proměnné alfa_2 tedy musíme připravit s přírůstkem 2 stupně (samozřejmě opět v radiánech). Současně se změnila koncová hodnota z 90 na 270 stupňů (-90+360). Ostatní části modelu se nemění. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. alfa_2 = (-90:2:-90+360)*pi/180; 31
Příklad - modifikace REKAPITULACE Manipulátor - provedení simulací Po vykreslení výsledků modifikovaného výpočtového modelu dostaneme graf: Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 32
Vektory, pokračování Naplnit vektor prvky v daném rozsahu a s daným krokem lze i jinak: linspace je vestavěná funkce, která produkuje řádkový vektor o počtu prvků kolik. První prvek má hodnotu od, poslední do, ostatní prvky jsou dopočítány tak, aby tvořily aritmetickou posloupnost. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >> a=linspace(1,5,6) a = 1.0000 1.8000 2.6000 3.4000 4.2000 5.0000 >> linspace(od, do, kolik) 33
Příklad S využitím funkce linspace můžeme upravit náš příklad takto: Pro modifikovaný příklad s otočením druhého ramene o 360 stupňů bude alfa_2 ostatní řádky zůstanou beze změn. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. l_1 = 1.3; l_2 = 0.7; alfa_1 = linspace(0,pi,181); alfa_2 = linspace(-pi/2,pi/2,181); x = l_1*cos(alfa_1) + l_2*cos(alfa_1 + alfa_2); y = l_1*sin(alfa_1) + l_2*sin(alfa_1 + alfa_2); alfa_2 = linspace(-pi/2,3*pi/2,181); 34
Matice Matice je vícerozměrné pole. Jedná-li se o dvourozměrnou matici (nejobvyklejší případ, dále budeme předpokládat dvourozměné matice), lze si ji představit jako tabulku prvků. Každý prvek je určen dvěma indexy (určují polohu prvku v matici, první index vyjadřuje řádek, druhý sloupec), indexy začínají od 1. Více k maticím viz matematika. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >> a=[1,2,3;4,5,6] a = 1 2 3 4 5 6 >> Matice 2 x 3, oddělovač řádků je středník nebo znak konce řádku, oddělovač prvků na řádku je čárka nebo mezera. 35
Matice indexy mohou být skaláry, vektory, řady (rozsahy) nebo speciální operátor : (dvojtečka) pro výběr celých řádků nebo sloupců, podobně jako u vektorů i u matic Matlab provádí aritmetické operace jako operace maticové (podrobnosti příště kvůli vazbě na matematiku) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. >> a=[1,2,3;4,5,6] a = 1 2 3 4 5 6 >> a(1,:)=[9,0,8] 9 0 8 >> Nahrazení prvního řádku matice specifikovaným řádkovým vektorem. 36
Příklad - modifikace Manipulátor V grafu si přejeme vykreslit i pozice ramen. K tomu potřebujeme znát souřadnice kloubu A spojujícího obě ramena. Tyto souřadnice snadno určíme ze vztahů: Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 37
Příklad - modifikace Požadovaný graf je na následujícím obrázku. K jeho dosažení je nutné vědět, jak funguje funkce plot. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 38
Příklad - modifikace V předchozích použitích funkce plot jsme této funkci předávali dva argumenty, které byly řádkové vektory. Odpovídající prvky těchto dvou vektorů vždy tvořily souřadnice bodu k vykreslení. Nyní nechceme vykreslit spojnici bodů trajektorie koncového bodu nebo spojnice ramen, ale pro každou polohu ramen vykreslit úsečku od počátku souřadnic ke kloubu spojujícímu ramena a odtud další úsečku do koncového bodu. Pokud oba parametry funkce plot jsou matice, sloupce druhého parametru (souřadnice y) se vykreslují proti sloupcům prvního parametru (souřadnice x) Připravíme dvě matice, v prvním řádku obou matic budou pvky s nulovou hodnotou (souřanice počátku), ve druhém řádku budou souřadnice kloubu, ve třetím řádku souřadnice koncového bodu (třetí řádky obou matic budou rovny vektorům vykreslovaným v dosavadních modifikacích příkladů). Bude vhodné zmenšit počet vykreslovaných pozic (dělení po jednom stupni natočení prvního ramene je příliš jemné, graf by byl zcela nepřehledný). Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 39
Příklad - modifikace n = 50; l_1 = 1.3; l_2 = 0.7; Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. n = 50; l_1 = 1.3; l_2 = 0.7; alfa_1 = linspace(0,pi,n); alfa_2 = linspace(-pi/2,3*pi/2,n); x(2,:) = l_1*cos(alfa_1); y(2,:) = l_1*sin(alfa_1); x(3,:) = l_1*cos(alfa_1) + l_2*cos(alfa_1+alfa_2); y(3,:) = l_1*sin(alfa_1) + l_2*sin(alfa_1+alfa_2); x(1,:) = 0; y(1,:) = 0; 40
Příklad - modifikace Použijeme-li pro připravené matice příkaz dostaneme následující graf. V dalším kroku už jen zvýrazníme polohu koncového bodu. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. plot(x,y); grid('on'); 41
Příklad - modifikace plot(x,y,'-',x(3,:),y(3,:),'*'); axis([-1.5,2,-1,2],'square'); grid('on'); Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. 42
m-skripty psát texty víceřádkových programů "z ruky" je nepraktické (nepřehlednost, obtížné modifikace, návrat k přerušené práci apod.) sekvenci příkazů lze uložit do textového souboru (obvykle s příponou .m, proto m-skripty) též skriptovací soubor, soubor skriptu V Octave je namísto příkazu run příkaz source. (Více ke skriptům bude v dalších týdnech, zacházení s Matlabem bude na cvičeních.) Tato prezentace je spolufinancována Evropským sociálním fondem a státním rozpočtem České republiky. . >> run('c:\\scripts\\manip.m'); >> Spuštění příkazů uložených v souboru c:\scripts\manip.m Výsledky se projeví stejným způsobem, jako by byly příkazy zapisovány přímo z klávesnice. 43