• MATLAB: nástroj budoucnosti nebo drahá hračka. Popis programu Matlab

    Většina vývojářů si jen těžko dokáže představit jeho syntaxi i funkce. Jde o to, že jazyk přímo souvisí s populárním softwarovým produktem, jehož náklady mohou dosáhnout úžasných hodnot. Hlavní otázka tedy zní: je samotný jazyk Matlab dobrý? A může to být užitečné pro vás.

    Používání

    Začněme nikoli standardním odbočením do historie a diskusí o výhodách a nevýhodách jazyka, ale softwarovým prostředím MATLAB / Simulink – jediným místem, kde může být hrdina tohoto textu užitečný. Jen si představ grafický editor, ve kterém můžete realizovat jakýkoli svůj nápad, aniž byste za sebou měli několikaletou praxi a příslušné vzdělání. A jakmile vytvoříte schéma interakce mezi nástroji, můžete získat vysoce kvalitní skript pro opakované použití.

    Právě takovým editorem ve světě dat je MATLAB. Rozsah jeho použití je nekonečně široký: IoT, finance, medicína, vesmír, automatizace, robotika, bezdrátové systémy a mnoho, mnoho dalšího. Obecně skoro neomezené možnosti pro sběr a vizualizaci dat, stejně jako prognózování, ale pouze v případě, že je možné zakoupit příslušný balíček.

    Co se ceny týče, horní hranice téměř neexistuje, ale ta spodní se pohybuje kolem 99 dolarů. Abyste za relativně málo peněz urvali tak výkonný produkt, musíte být vysokoškolák. A samozřejmě dostanete poměrně omezený produkt.

    Jazykové vlastnosti

    Jazyk MATLAB je nástroj, který zajišťuje interakci operátora (často ani programátora) se všemi dostupné příležitosti analýza, sběr a prezentace dat. Má zjevné výhody a nevýhody jazyka, který žije v uzavřeném ekosystému.

    nedostatky:

      Pomalé a přetížené operátory, příkazy, funkcemi, jazykem, jehož hlavním účelem je zlepšit zrakové vnímání.

      Vysoce soustředěný. Neexistuje žádná jiná softwarová platforma, kde by byl MATLAB užitečný.

      Drahý software. Pokud nejste student - buď se připravte na vyprázdnění kapsy, nebo překročení hranice zákona. A i když student - cena je slušná.

      Nízká poptávka. I přes velký zájem o MATLAB téměř ve všech oblastech jej skutečně a legálně využívá jen málokdo.

    výhody:

      Jazyk se snadno učí, má jednoduchou a jasnou syntaxi.

      Obrovské příležitosti. To je ale spíše výhoda celého produktu jako celku.

      K častým aktualizacím zpravidla dochází alespoň několikrát do roka ke znatelným pozitivním transformacím.

      Softwarové prostředí umožňuje převést jej na „rychlý“ kód v C, C++.

    cílové publikum

    Samozřejmě ne každý potřebuje MATLAB. I přes nejširší záběr je těžké si představit, že by běžný vývojář aplikací potřeboval znalost tohoto jazyka. MATLAB je mimořádně užitečný v oblastech, které vyžadují zvláštní spolehlivost při zpracování dat, jako jsou systémy autopilota v automobilech nebo palubní elektronické systémy letadel.

    Tedy pokud nejste příliš programátor, ale tak či onak je vaše profese spojena s potřebou softwarové zpracování data, pak může produkt MATLAB/Simulink s příslušným jazykem výrazně zjednodušit vaše každodenní úkoly.

    Literatura

    Recenzi jazyka doplňujeme jako vždy seznamem naučné literatury. Samo o sobě mezi nimi nenajdete knihy výhradně o jazyce, ale to jen usnadní vnímání jazyka:

    Máte zkušenosti s MATLABEM? A který?

    Pro ty, kteří se chtějí stát programátorem - .

    Prostředí MATLAB obsahuje interpret příkazů v jazyce vysoké úrovně, grafický systém, rozšiřující balíčky a je implementován v jazyce C. Veškerá práce je organizována prostřednictvím příkazového okna (Command Window), které se objeví po spuštění programu matlab.exe. V průběhu práce jsou data umístěna v paměti (Workspace), jsou vytvářena grafická okna pro zobrazení křivek, ploch a dalších grafů.

    Výpočty se provádějí v příkazovém okně v dialogovém režimu. Uživatel zadává příkazy nebo spouští soubory s texty v jazyce MATLAB. Interpret zpracovává vstup a vytváří výsledky: číselná a řetězcová data, varování a chybová hlášení. Vstupní řádek je označen >>. Příkazové okno zobrazuje čísla zadaná z klávesnice, proměnné a výsledky výpočtů. Názvy proměnných musí začínat písmenem. Znak = odpovídá operátoru přiřazení. Stisknutí klávesy Enter způsobí, že systém vyhodnotí výraz a zobrazí výsledek. Napište z klávesnice do vstupního řádku:

    Stiskněte klávesu Enter, výsledek výpočtu se objeví na obrazovce v oblasti zobrazení:

    Všechny hodnoty proměnných vypočítané během aktuální relace práce jsou uloženy ve speciálně vyhrazené oblasti paměti počítače nazývané pracovní prostor systému MATLAB (Workspace). Příkaz clc může vymazat obsah příkazového okna, ale neovlivní to obsah pracovního prostoru. Když již není nutné v aktuální relaci ukládat řadu proměnných, lze je z paměti počítače vymazat příkazem clear nebo clear(name1, name2, ...). První příkaz odstraní všechny proměnné z paměti a druhý odstraní proměnné s názvem jméno1 a jméno2. Příkaz who lze použít k zobrazení seznamu všech proměnných obsažených v tento moment do pracovního prostoru systému. Chcete-li zobrazit hodnotu libovolné proměnné z aktuálního pracovního prostoru systému, stačí zadat její název a stisknout klávesu Enter.

    Po ukončení relace se systémem MATLAB jsou všechny dříve vypočítané proměnné ztraceny. Chcete-li uložit obsah pracovního prostoru systému MATLAB do souboru na disk počítače, musíte provést příkaz nabídky Soubor / Uložit pracovní prostor jako .... Ve výchozím nastavení je přípona názvu souboru mat, takže takové soubory jsou obvykle nazývané soubory MAT. Chcete-li načíst pracovní prostor dříve uložený na disku do paměti počítače, proveďte příkaz nabídky: Soubor / Načíst pracovní prostor ... .

    Reálná čísla a dvojitý datový typ

    Systém MATLAB představuje na úrovni stroje všechna reálná čísla daná mantisou a exponentem, například 2,85093E+11, kde písmeno E označuje základ stupně rovný 10. Tento základní datový typ se nazývá double. MATLAB má výchozí krátký formát pro výstup s plovoucí desetinnou čárkou, který zobrazuje pouze čtyři desetinná místa za desetinnou čárkou.

    Zadejte z klávesnice příklad:

    »res=5,345*2,868/3,14-99,455+1,274

    Získejte výsledek výpočtu:

    Pokud je vyžadováno úplné zobrazení reálného čísla res, zadejte příkaz z klávesnice:

    stiskněte klávesu Enter a získejte více detailní informace:

    rozlišení = -93,29900636942675

    Nyní budou všechny výsledky výpočtů zobrazeny s tak vysokou přesností během této relace v prostředí systému MATLAB. Pokud se před ukončením aktuální relace potřebujete vrátit ke staré přesnosti vizuální reprezentace reálných čísel v příkazovém okně, musíte zadat a provést (stisknutím klávesy Enter) příkaz:

    Celá čísla zobrazí systém v příkazovém okně jako celá čísla.

    Aritmetické operace se provádějí s reálnými čísly a proměnnými typu double: sčítání +, odčítání -, násobení *, dělení / a umocňování ^ . Přednost při realizaci aritmetické operace obyčejný. Operátory se stejnou prioritou se provádějí v pořadí zleva doprava, ale závorky mohou toto pořadí změnit.

    Pokud není potřeba vidět výsledek výpočtu nějakého výrazu v příkazovém okně, tak na konec zadaného výrazu dejte středník a teprve potom stiskněte Enter.

    Systém MATLAB obsahuje všechny základní elementární funkce pro výpočty s reálnými čísly. Každá funkce je charakterizována svým názvem, seznamem vstupních argumentů (jsou uvedeny oddělené čárkami a jsou v závorkách za názvem funkce) a vypočítanou (vrácenou) hodnotou. Seznam všech elementárních matematických funkcí dostupných v systému lze získat pomocí příkazu help elfun. Dodatek 1 uvádí standardní funkce skutečného argumentu.

    Vyhodnoťte výraz zahrnující výpočet funkce arkussinus:

    Ujistěte se, že získáte následující výsledek:

    odpovídající číslu „pí“. V systému MATLAB je pro výpočet čísla „pi“ speciální zápis: pi. (Seznam systémových proměnných MATLABu je v příloze 2).

    MATLAB má také logické funkce, funkce související s celočíselnou aritmetikou (zaokrouhlení na nejbližší celé číslo: round, zkrácení zlomkové části čísla: fix). K dispozici je také funkce mod - zbytek dělení s přihlédnutím ke znaménku, sign - znaménko čísla, lcm - nejmenší společný násobek, perms - výpočet počtu permutací a nchoosek - počet kombinací a mnoho dalších. Mnoho funkcí má definiční obor odlišný od množiny všech reálných čísel.

    Kromě aritmetických operací na operandech dvojího typu se provádějí také relační a logické operace. Relační operace porovnávají dva operandy co do velikosti. Tyto operace se zapisují pomocí následujících znaků nebo kombinací znaků (tabulka 1):

    stůl 1


    Pokud je relační operátor pravdivý, je jeho hodnota 1, a pokud je nepravdivý, je 0. Relační operátory mají nižší prioritu než aritmetické operátory.

    Zadejte výraz pomocí relačních operací z klávesnice a počítejte

    »a=1; b=2; c=3;

    » res=(a

    Získáte následující výsledek:

    Logické operace s reálnými čísly jsou označeny znaky uvedenými v tabulce 2:

    tabulka 2


    & | ~
    A NEBO NE

    První dvě z těchto operací jsou binární (dvaoperandy) a poslední je unární (jednooperand). Logické operátory zacházejí se svými operandy jako "true" (nerovná se nule) nebo "false" (rovná se nule). Pokud jsou oba operandy operace "AND" pravdivé (nerovnají se nule), pak je výsledek této operace 1 ("pravda"); ve všech ostatních případech vytvoří operace "AND" hodnotu 0 ("false"). Operace OR vytvoří 0 (nepravda), pouze pokud jsou oba operandy nepravdivé (rovné nule). Operace "NOT" invertuje "false" na "true". Logické operace mají nejnižší prioritu.

    Komplexní čísla a komplexní funkce

    Komplexní proměnné, stejně jako ty skutečné, mají automaticky dvojitý typ a nevyžadují žádný předběžný popis. Písmena i nebo j jsou vyhrazena pro imaginární jednotku. V případě, že koeficient před imaginární jednotkou není číslo, ale proměnná, je třeba mezi nimi použít znaménko násobení. Komplexní čísla lze tedy zapsat takto:

    » 2+3i; -6,789 + 0,834e-2*i; 4-2j; x+y*i;

    Téměř všechny elementární funkce umožňují výpočty se složitými argumenty. Vyhodnoťte výraz:

    » res=sin(2+3i)*atan(4i)/(1-6i)

    Výsledkem bude:

    1.8009 - 1.91901

    Následující funkce jsou speciálně navrženy pro práci s komplexními čísly: abs (absolutní hodnota komplexního čísla), conj (komplexně sdružená), imag (imaginární část komplexního čísla), reálná (reálná část komplexního čísla), úhel ( argument komplexního čísla), isreal ("pravda", pokud je číslo reálné). Funkce komplexní proměnné jsou uvedeny v příloze 1.

    S ohledem na aritmetické operace nelze pro komplexní čísla (ve srovnání s reálnými) říci nic nového. Totéž platí pro relační operace „rovná se“ a „není rovno“. Zbytek relačních operací vytváří výsledek založený pouze na skutečných částech těchto operandů.

    Zadejte výraz, získejte výsledek a vysvětlete jej:

    »c=2+3i; d = 2i; »c>d

    Booleovské operace považují operandy za nepravdivé, pokud jsou nulové. Pokud alespoň jedna část komplexního operandu (reálná nebo imaginární) není rovna nule, pak se takový operand považuje za pravdivý.

    Číselná pole

    Chcete-li vytvořit jednorozměrné pole, můžete použít operaci zřetězení, která je označena hranatými závorkami. Prvky pole jsou umístěny mezi závorky a odděleny od sebe mezerou nebo čárkou:

    »al=; d=;

    Chcete-li získat přístup k jednotlivému prvku pole, musíte použít operaci indexování, pro kterou za jménem prvku zadejte index prvku v závorkách.

    Prvky již vytvořeného pole můžete změnit použitím operací indexování a přiřazení. Například zadáním:

    změníme třetí prvek pole. Nebo po úvodu:

    » al(2)=(al(1)+al(3))/2;

    druhý prvek pole se bude rovnat aritmetickému průměru prvního a třetího prvku. Zápis neexistujícího prvku je dokonale platný – znamená to přidání nového prvku do již existujícího pole:

    Aplikováním funkce délky na pole a1 po provedení této operace zjistíme, že počet prvků v poli se zvýšil na čtyři:

    Stejnou akci - "prodloužení pole a1" - lze provést pomocí operace zřetězení:

    Pole můžete definovat tak, že vypíšete všechny jeho prvky jednotlivě:

    »a3(1)=67; a3(2) = 7,8; a3(3) = 0,017;

    Tento způsob tvorby však není efektivní. Další způsob, jak vytvořit jednorozměrné pole, je založen na použití speciální funkce, označené dvojtečkou (operace vytváření rozsahu číselných hodnot). Za dvojtečkou zadejte první číslo rozsahu, krok (přírůstek) a konečné číslo rozsahu. Například:

    »diap=3,7:0,3:8,974;

    Pokud nepotřebujete zobrazit celé výsledné pole, pak na konci sady (za koncovým číslem rozsahu) byste měli napsat středník. Chcete-li zjistit, kolik prvků je v poli, zavolejte funkci length(název pole).

    Chcete-li vytvořit dvourozměrné pole (matici), můžete také použít operaci zřetězení. Prvky pole se zapisují jeden za druhým podle jejich umístění v řádcích, jako oddělovač řádků se používá středník.

    Zadejte z klávesnice:

    »a=

    Stiskněte ENTER, dostaneme:

    Výsledná matice a o velikosti 3x2 (první udává počet řádků, druhá - počet sloupců) může být také vytvořena vertikálním zřetězením řádkových vektorů:

    »a=[;;];

    nebo horizontální zřetězení sloupcových vektorů:

    » a=[,];

    Strukturu vytvořených polí lze zjistit pomocí příkazu whos(název pole), rozměr pole funkcí ndims a velikost pole velikostí.

    Dvourozměrná pole lze také specifikovat pomocí operace indexování, kdy se její prvky zapisují samostatně. Číslo řádku a sloupce, na jehož průsečíku se nachází zadaný prvek pole, je uvedeno oddělené čárkami v závorkách. Například:

    »a(l,l)=l; a(l,2)=2; a(2,1)=3; »a(2,2)=4; a(3,1)=5; a(3,2)=6;

    Mnohem efektivnější však bude, když před zahájením zápisu prvků pole vytvoříte pole požadované velikosti pomocí funkcí jedniček (m, n) nebo nul (m, n), vyplněných jedničkami nebo nulami (m je počet řádků, n je počet sloupců). Když jsou tyto funkce volány, paměť je předem alokována pro danou velikost pole, načež postupné předepisování prvků s požadovanými hodnotami nevyžaduje přestavbu paměťové struktury přidělené pro pole. Tyto funkce lze také použít při zadávání polí jiných rozměrů.

    Pokud po vytvoření pole X potřebujete změnit jeho velikost beze změny prvků pole, můžete použít funkci reshape (X, M, N), kde M a N jsou nové velikosti pole X

    Činnost této funkce je možné vysvětlit pouze na základě způsobu, jakým systém MATLAB ukládá prvky polí do paměti počítače. Ukládá je v souvislé oblasti paměti v pořadí sloupců: prvky prvního sloupce jsou umístěny jako první, následují prvky druhého sloupce atd. Kromě skutečných dat (prvků pole) se ukládá také paměť počítače kontrolní informace: typ pole (například double), rozměr a velikost pole, další servisní informace. Tato informace stačí k určení hranic sloupců. Z toho plyne, že pro přetvoření matice pomocí funkce reshape stačí změnit pouze servisní informace a nedotýkat se vlastních dat.

    Řádky matice s jejími sloupci můžete zaměnit pomocí operace transportu, která je označena znaménkem." (tečka a apostrof). Například

    »A=;

    Operace " (apostrof) provádí transpozici pro reálné matice a transpozici se současnou komplexní konjugací pro komplexní matice.

    Objekty, se kterými MATLAB pracuje, jsou pole. I jedno dané číslo v interní reprezentaci MATLABu je pole skládající se z jednoho prvku. MATLAB umožňuje provádět výpočty s obrovskými poli čísel stejně snadno jako s čísly jednotlivými, a to je jedna z nejviditelnějších a nejdůležitějších výhod systému MATLAB oproti jiným softwarovým balíkům zaměřeným na výpočty a programování. Kromě paměti potřebné pro uložení numerických prvků (8 bajtů každý pro reálná čísla a 16 bajtů pro komplexní čísla), MATLAB automaticky přiděluje paměť pro řídicí informace při vytváření polí.

    Array výpočty

    V tradičních programovacích jazycích jsou pole počítána prvek po prvku v tom smyslu, že každá jednotlivá operace musí být naprogramována na samostatném prvku pole. V jazyce M systému MATLAB jsou povoleny výkonné skupinové operace na celém poli najednou. Právě skupinové operace systému MATLAB umožňují extrémně kompaktně nastavovat výrazy, při jejichž výpočtu se vlastně odvede gigantické množství práce.

    Operace sčítání a odčítání matice jsou označeny standardními znaménky + a -.

    Definujte matice A a B a proveďte operaci sčítání matic:

    »A=; B=;

    Pokud jsou použity operandy různé velikosti, je vydána chybová zpráva, pokud jeden z operandů není skalární. Při provádění operace A + skalár (A - matice) systém rozšíří skalár na pole velikosti A, které se dále přidává prvek po prvku k A.

    Pro elementární násobení a elementární dělení polí stejné velikosti, stejně jako pro elementární umocňování polí, se používají operace označené kombinacemi dvou symbolů: .* , ./ a .^. Použití kombinací znaků se vysvětluje tím, že symboly * a / označují speciální operace lineární algebra přes vektory a matice.

    Kromě operace ./, nazývané operace dělení po prvku vpravo, existuje také operace dělení po prvku vlevo. \. Rozdíl mezi těmito operacemi: výraz A./B vede k matici s prvky A (k, m) / B (k, m) a výraz A. \ B vede k matici s prvky B (k, m ) / A (k, m).

    Znaménko * je přiřazeno násobení matic a vektorů ve smyslu lineární algebry.

    Znaménko \ je v systému MATLAB zafixováno pro řešení poměrně složitého problému lineární algebry - hledání kořenů soustavy lineárních rovnic. Pokud například potřebujete vyřešit soustavu lineárních rovnic Ay = b, kde A je daná čtvercová matice velikosti N´N, b je daný sloupcový vektor délky N, pak pro nalezení neznámého sloupcového vektoru y stačí vypočítat výraz A \ b (to je ekvivalentní operaci : A -1 B).

    Typické problémy analytické geometrie v prostoru, související s hledáním délek vektorů a úhlů mezi nimi, s výpočtem skalárních a vektorových součinů, jsou snadno řešeny různými prostředky systému MATLAB. Například pro nalezení křížového součinu vektorů je speciální funkce cross určena například:

    »u=; v=;

    Skalární součin vektorů lze vypočítat pomocí funkce obecný účel součet, který vypočítá součet všech prvků vektorů (u matic tato funkce vypočítá součty za všechny sloupce). Skalární součin, jak známo, je roven součtu součinů odpovídajících souřadnic (prvků) vektorů. Takže výraz je: » suma(u.*v)

    vypočítá bodový součin dvou vektorů u a v. Bodový součin lze také vypočítat jako: u*v".

    Délka vektoru se vypočítá pomocí tečkového součinu a funkce druhé odmocniny, například:

    » sqrt(součet(u.*u))

    Relační a logické operace dříve uvažované pro skaláry se v případě polí provádějí prvek po prvku. Oba operandy musí mít stejnou velikost a operace vrátí výsledek stejné velikosti. V případě, že je jedním z operandů skalár, provede se jeho předběžná expanze, jejíž význam již byl vysvětlen na příkladu aritmetických operací.

    Mezi funkcemi, které generují matice s danými vlastnostmi, se často používá funkce oko, který vytváří jednotkové čtvercové matice, a také v praxi široce používanou funkci rand generující pole s náhodnými prvky rovnoměrně rozloženými v intervalu od 0 do 1. Například výraz

    vytvoří pole náhodná čísla velikost 3x3 s prvky rovnoměrně rozmístěnými v intervalu od 0 do 1.

    Pokud tuto funkci zavoláte se dvěma argumenty, například R=rand(2,3), dostanete matici R 2x3 náhodných prvků. Když se rand zavolá se třemi nebo více skalárními argumenty, vytvoří se vícerozměrná pole náhodných čísel.

    Determinant čtvercové matice se vypočítá pomocí funkce det. Mezi funkce, které provádějí nejjednodušší výpočty na polích, kromě výše uvedených součtové funkce, používá se i funkce prod, která je ve všem podobná funkci součtu, jen nepočítá součet prvků, ale jejich součin. Funkce max a min vyhledávají maximální a minimální prvky polí. Pro vektory vracejí jedinou číselnou hodnotu a pro matice generují sadu extrémních prvků vypočítaných pro každý sloupec. Funkce řazení třídí prvky jednorozměrných polí vzestupně a u matic třídí pro každý sloupec zvlášť.

    MATLAB má jedinečnou schopnost provádět skupinové výpočty na polích pomocí běžných matematických funkcí, které pracují pouze se skalárními argumenty v tradičních programovacích jazycích. Výsledkem je, že pomocí extrémně kompaktních zápisů, vhodných pro psaní v interaktivním režimu s příkazovým oknem systému MATLAB, je možné provádět velké množství výpočtů. Například jen dva krátké výrazy

    » x=0:0,01:pi/2; y=sin(x);

    vypočítejte hodnoty funkce sin ve 158 bodech najednou a vytvořte dva vektory x a y se 158 prvky.

    Funkce vykreslování

    Grafické možnosti systému MATLAB jsou výkonné a rozmanité. Pojďme prozkoumat nejsnadněji použitelné funkce (grafika na vysoké úrovni).

    Vytvořte dva vektory x a y:

    » x=0:0,01:2; y=sin(x);

    Zavolejte funkci:

    a na obrazovce získáte graf funkce (obr. 1).

    Rýže. 1. Graf funkce y=sin(x)

    MATLAB zobrazuje grafické objekty ve speciálních grafických oknech, které mají v názvu slovo Obrázek. Aniž byste odstranili první grafické okno z obrazovky, zadejte výrazy z klávesnice

    a získejte nový graf funkce ve stejném grafickém okně (v tomto případě staré souřadné osy a graf zmizí - to lze také dosáhnout příkazem clf, příkaz cla odstraní pouze graf, čímž se souřadné osy zobrazí jejich standard se pohybuje od 0 do 1).

    Pokud potřebujete nakreslit druhý graf „na první graf“, pak před opětovným voláním grafické funkce plot, musíte provést příkaz hold on, který je navržen tak, aby podržel aktuální grafické okno:

    » x=0:0,01:2; y=sin(x);

    Téměř totéž se stane (obr. 2), pokud zadáte:

    » x=0:0,01:2; y=sin(x); z=cos(x);

    »zápletka(x,y,x,z)

    Rýže. 2. Grafy funkcí y=sin(x), z=cos(x), zabudované v jednom grafickém okně

    Pokud potřebujete vizualizovat několik grafů současně, aby se navzájem nerušily, lze to provést dvěma způsoby. Prvním řešením je vykreslit je v různých grafických oknech. Chcete-li to provést, před opětovným voláním funkce plot zadejte příkaz obrázek, který vytvoří nové grafické okno a přinutí všechny následující funkce vykreslování, aby je zde zobrazily.

    Druhým řešením pro zobrazení více grafů bez konfliktních rozsahů os je použití funkce subplot. Tato funkce umožňuje rozdělit oblast výstupu grafických informací na několik dílčích oblastí, v každé z nich lze zobrazit grafy různých funkcí.

    Například pro dříve provedené výpočty s funkcemi sin a cos vykreslete grafy těchto dvou funkcí do první podoblasti a funkci exp(x) vykreslete do druhé podoblasti stejného grafického okna ( Obr. 3):

    » subplot(1,2,1); plot(x,y,x,z)

    » subplot(1,2,2); plot(x,w)

    Rýže. 3. Grafy funkcí y=sin(x), z=cos(x) a w=exp(x), zabudované ve dvou podoblastech jednoho grafického okna

    Rozsahy proměnných na souřadnicových osách těchto subdomén jsou na sobě nezávislé. Funkce subplot přebírá tři číselné argumenty, z nichž první se rovná počtu řádků dílčích grafů, druhý je roven počtu sloupců dílčích grafů a třetí argument je číslo dílčího grafu (počet se počítá podél řádky, přesun na nový řádek, když jsou vyčerpány). Akci funkce subplot můžete odstranit příkazem:

    » podkres (1,1,1)

    Pokud jsou pro jeden graf rozsahy proměnných podél jedné nebo obou souřadnicových os příliš velké, můžete použít funkce vykreslování v logaritmickém měřítku. K tomu jsou určeny funkce semilogx, semilogy a loglog.

    Funkci můžete vykreslit v polárních souřadnicích (obr. 4) pomocí polární grafické funkce.

    » phi=0:0,01:2*pi; r=sin(3*phi);

    Rýže. 4. Graf funkce r=sin(3*phi) v polárních souřadnicích

    Zvážit další funkce související s řízením vzhled grafy - nastavení barvy a stylu čar, stejně jako umístění různých popisků v rámci grafického okna. Například příkazy

    » x=0:0,1:3; y=sin(x);

    » plot(x,y,"r-",x,y, "ko")

    umožňují, aby graf vypadal jako červená plná čára (obr. 5), na níž jsou v diskrétních vypočítaných bodech umístěny černé kroužky. Zde funkce plot vykresluje stejnou funkci dvakrát, ale ve dvou různých stylech. První z těchto stylů je označen „r-“, což znamená čáru nakreslenou červeně (písmeno r), a tah znamená plnou čáru. Druhý styl, označený „ko“, znamená kreslení černými (písmeno k) kruhů (písmeno o) na místě vypočtených bodů.

    Rýže. 5. Vykreslení funkce y=sin(x) ve dvou různých stylech

    Obecně platí, že graf funkce (x1, y1, s1, x2, y2, s2, ...) umožňuje kombinovat několik grafů funkcí y1(x1), y2(x2), ... v jednom grafickém okně kreslením je se styly s1, s2, ... atd.

    Styly s1, s2,... jsou specifikovány jako sada tří znakových značek uzavřených do jednoduchých uvozovek (apostrofů). Jedna z těchto značek určuje typ čáry (Tabulka 3). Další značka nastavuje barvu (tabulka 4). Poslední značka nastavuje typ „teček“, které se mají položit (tabulka 5). Nemůžete zadat všechny tři značky. Poté se použijí výchozí značky. Pořadí, ve kterém jsou markery specifikovány, není podstatné, tj. "r+-" a "-+r" poskytují stejný výsledek.

    Tabulka 3. Značky typu čáry

    Tabulka 4 Značky, které nastavují barvu čáry

    Tabulka 5 Značky definující typ bodu

    Pokud umístíte značku na typ bodu v čáře stylu, ale nevložíte značku na typ čáry, zobrazí se pouze vypočítané body a nejsou spojeny souvislou čarou.


    Systém MATLAB nastavuje limity na vodorovné ose na hodnoty zadané uživatelem pro nezávislou proměnnou. Pro závisle proměnnou na svislé ose MATLAB nezávisle vypočítá rozsah funkčních hodnot. Pokud potřebujete opustit tuto funkci škálování při vykreslování grafů v systému MATLAB, musíte explicitně uložit své vlastní limity pro změnu proměnných podél souřadnicových os. To se provádí pomocí funkce axis().

    Funkce xlabel, ylabel, title a text slouží k tomu, aby se na výsledný obrazec umístily různé nápisy. Funkce xlabel vytváří popisek pro vodorovnou osu, funkce ylabel i pro svislou osu (navíc jsou tyto popisky orientovány podél souřadnicových os). Pokud chcete umístit nápis na libovolné místo na obrázku, použijte funkci text. Obecný název pro graf je vytvořen funkcí title. Navíc pomocí příkazu grid on můžete použít mřížku měření na celou oblast vykreslování. Například (obr. 6):

    » x=0:0,1:3; y=sin(x);

    » plot(x,y,"r-",x,y,"ko")

    »title("Graf funkce sin(x)");

    » xlabel("xcoordinate"); ylabel("hřích(x)");

    » text(2.1, 0.9, "\leftarrowsin(x)"); mřížka zapnutá

    Popisek s textovou funkcí je umístěn od bodu se souřadnicemi určenými prvními dvěma argumenty. Ve výchozím nastavení jsou souřadnice zadány ve stejných jednotkách jako souřadnice zadané na vodorovné a svislé ose. Speciální řídicí znaky se zadávají do textu za znakem \ (obrácené lomítko).

    3D grafika

    Každý bod v prostoru je charakterizován třemi souřadnicemi. Množina bodů patřících k nějaké přímce v prostoru musí být zadána jako tři vektory, z nichž první obsahuje první souřadnice těchto bodů, druhý vektor - jejich druhé souřadnice, třetí vektor - třetí souřadnice. Poté lze tyto tři vektory přivést na vstup funkce plot3, která promítne odpovídající trojrozměrnou čáru na rovinu a sestaví výsledný obraz (obr. 7). Zadejte z klávesnice:

    » t=0:pi/50:10*pi; x=sin(t);

    » y=cos(t); plot3(x,y,t); mřížka zapnutá

    Rýže. 7. Graf šroubovice, vytvořený pomocí funkce plot3

    Stejnou funkci plot3 lze také použít k zobrazení ploch v prostoru, pokud samozřejmě nekreslíte jednu čáru, ale mnoho. Napište z klávesnice:

    »u=-2:0,1:2; v=-1:0,1:1;

    »=meshgrid(u,v);

    » z=exp(-X.^2-Y.^2);

    Získejte trojrozměrný obraz grafu funkce (obr. 8).

    Funkce plot3 vykreslí graf jako sadu čar v prostoru, z nichž každá je řezem trojrozměrného povrchu rovinami rovnoběžnými s rovinou yOz. Kromě toho nejjednodušší funkce Systém MATLAB má řadu dalších funkcí, které umožňují dosáhnout větší realističnosti při zobrazování trojrozměrných grafů.

    Rýže. 8. Graf povrchu v prostoru, vytvořený pomocí funkce plot3


    Skripty a m-soubory.

    Pro jednoduché operace je výhodný interaktivní režim, ale pokud je třeba provádět výpočty opakovaně nebo je třeba implementovat složité algoritmy, pak by měly být použity m-soubory MATLABu (přípona souboru se skládá z jediného písmene m). script-m-file (nebo skript) - textový soubor obsahující instrukce MATLABu, který se má provádět v automatickém dávkovém režimu. Výhodnější je vytvořit takový soubor pomocí editoru systému MATLAB. Volá se z příkazového okna systému MATLAB příkazem nabídky Soubor/Nový/M-soubor (nebo tlačítkem úplně vlevo na nástrojové liště, které ukazuje prázdný bílý list papíru). Příkazy zapsané v souborech skriptu se provedou, pokud do příkazového řádku zadáte název souboru skriptu (bez přípony). Proměnné definované v příkazovém okně a proměnné definované ve skriptech tvoří jeden pracovní prostor systému MATLAB a proměnné definované ve skriptech jsou globální, jejich hodnoty nahradí hodnoty stejných proměnných, které byly použity před voláním tohoto soubor skriptu.

    Po vytvoření textu skriptu je nutné jej uložit na disk. Cesta k adresáři se souborem musí být systému MATLAB známa. Příkaz File/Set Path vyvolá dialogové okno Directory Path Viewer. Chcete-li přidat nový adresář do seznamu přístupových cest, proveďte příkaz nabídky Cesta/Přidat do cesty.

    Skripty

    Kromě práce na příkazovém řádku existuje další způsob, jak spouštět příkazy. Toto je psaní programů.

    Skript je sekvence příkazů MATLABu zapsaných do souboru s příponou ".m". Tyhle jsou obyčejné textové soubory. K jejich psaní můžete použít jakýkoli textový editor.

    K vytvoření skriptu obecně stačí mít po ruce běžný textový editor. Využijeme editor zabudovaný v prostředí MATLAB. Pomocí tlačítka "Nový skript" v levém horním rohu vytvořte nový skript. Po stisknutí tohoto tlačítka se objeví okno textového editoru (obrázek 5).

    Obrázek 5. Editor kódu MATLABu Vytvořme malý program:

    fprintf("Ahoj světe!\n")

    Nyní musíte tento skript uložit, k tomu musíte kliknout na tlačítko "Uložit" vlevo horním rohu, načež MATLAB nabídne uložení do aktuálního adresáře ("Aktuální složka"). Skript pojmenujeme „Příklad1.m“ a uložíme. Je žádoucí, aby byl skript uložen v aktuálním adresáři, takže MATLAB bude hledat skripty ke spuštění.

    ve složkách, které jsou uvedeny v cestě vnitřní proměnné MATLABu. Tento seznam obsahuje i aktuální adresář, zobrazený v prostředí MATLABu vpravo ve speciální plovoucí oblasti. Ve výchozím nastavení se skript uloží do aktuálního adresáře, takže jej můžete ihned vyvolat. Skript můžete spustit tak, že zadáte jeho název (název m-souboru, do kterého byl uložen) na příkazovém řádku a stisknete "Enter" nebo tlačítko "Spustit" v editoru kódu. V obou případech příkazové okno zobrazí následující výstup:

    >> Příklad1 Ahoj světe!

    Podívejme se na další příklad. Existuje skript:

    x = 0:0,02:2*pi; a = 0,3;

    y = a * sin(x) + b * cos(x); plot(x, y)

    Uložíme jej do souboru Example2.m a spustíme jej ke spuštění. Výsledkem je, že MATLAB vypočítá a vynese funkci y = a sin(x )+ b cos(x ) .

    Všimli jsme si také, že po provedení skriptu se v okně Pracovní plocha objevily proměnné x , a , b a y. Abyste vysvětlili, proč tomu tak je, zvažte velmi důležitý koncept v MATLABu jako pracovní prostor.

    Pracovní plocha v MATLABu

    Pracovní prostor systému MATLAB je oblast paměti, kde jsou umístěny systémové proměnné. Pracovní prostory v MATLABu jsou dvou typů:

    základní pracovní plocha - základní pracovní plocha;

    function workspace - pracovní plocha funkcí.

    Všechny proměnné v pracovním prostoru v něm existují od okamžiku, kdy jsou deklarovány při práci s tímto pracovním prostorem, až do jejich explicitního smazání pomocí příkazu clear nebo do konce platnosti pracovního prostoru, například pro základní pracovní prostor je to uzavření MATLABu.

    Když je skript spuštěn, nevytváří nový pracovní prostor, ale pracuje s pracovním prostorem, odkud byl volán.

    Když skript zavoláme z příkazového okna, pracuje se základní pracovní plochou, takže má přístup ke všem proměnným, které jsme vytvořili před voláním skriptu. Pokud skript vytvoří více proměnných, zůstanou dostupné i poté

    jeho dokončení.

    Komentáře

    Dobrý styl psaní programový kód počítá se to jako komentáře ke kódu, který napíšete. Komentáře nijak neovlivňují chod programu a slouží k poskytnutí dodatečné informace. Komentáře pomohou ostatním porozumět vašemu algoritmu a pomohou vám zapamatovat si podstatu toho, co jste napsali po určité době, kdy jste již zapomněli, co jste naprogramovali. MATLAB používá znak "%" k označení začátku komentáře.

    % Generování rovnoměrně rozložených náhodných čísel

    % Výpočet matematického očekávání generovaných čísel

    % Zobrazení dat v grafu

    % 50 náhodných čísel

    % Vygenerujte a přiřaďte náhodný vektor

    hodnoty proměnné r

    % Zobrazit vygenerovaný vektor na grafu

    % Nakresli čáru

    přes (0, m) a (n, m)

    % Vypočítejte aritmetický průměr hodnot

    vektor r

    spiknutí(,)

    title("Mean of Random Uniform Data") % Název grafu

    Funkce

    Další odrůda programy MATLAB- funkce. Na rozdíl od skriptů funkce při volání vytvoří nový pracovní prostor, takže proměnné deklarované mimo její kód nebudou uvnitř funkce viditelné. Proto se k propojení funkce s externím kódem používají vstupní a výstupní parametry. Zvažte obecnou syntaxi deklarace funkce:

    function = název_funkce(x1,...,xM) operátor_1 operátor_2

    operátor_n konec

    Funkce je obsažena v samostatném m-souboru.

    Funkce začíná klíčovým slovem function následovaným čtvercem

    závorky oddělené čárkami jsou názvy výstupních proměnných. Dále následuje znak "=" a název funkce. Název funkce se řídí stejnými pravidly jako názvy proměnných. Všimněte si také, že název funkce musí nutně odpovídat názvu souboru, ve kterém je definována. Za názvem funkce jsou v závorkách oddělené čárkami názvy vstupních parametrů.

    Následující řádky obsahují tělo funkce (jakékoli platné výrazy MATLABu).

    Na konci funkce končí klíčové slovo konec, je však volitelný a lze jej vynechat.

    Všimněte si také, že pokud funkce vrací pouze jeden parametr, není nutné jej uzavírat do hranatých závorek, například:

    funkce s = triaArea(a, b)

    % výpočet plochy pravoúhlého trojúhelníku

    % a, b - nohy trojúhelníku

    s = a* b/2; konec

    Pokud funkce nevrací parametry vůbec, pak bezprostředně za klíčovým slovem funkce následuje název funkce, například:

    funkce helloWorld()

    % příklad funkce bez vstupních a výstupních parametrů disp("Ahoj světe!");

    K volání funkce se používá následující syntaxe:

    Název_funkce(z1,...,zM)

    kde k1, ..., kN jsou proměnné, do kterých se budou zapisovat výstupní hodnoty funkce, аz1,...,zM jsou argumenty funkce.

    Pokud funkce vrací pouze jeden parametr, lze hranaté závorky vynechat, například:

    s = triaArea(1,2)

    Parametry aktuální a formální funkce

    Je důležité rozlišovat mezi skutečnými a formálními funkčními parametry:

    skutečný parametr – argument předaný funkci při jejím volání;

    formální parametr - argument zadaný při deklaraci nebo definici funkce.

    Vysvětleme si tento rozdíl na příkladu.

    Práce z příkazového řádku MatLabu je obtížná, pokud potřebujete zadávat mnoho příkazů a často je měnit. Vedení deníku pomocí příkazu deník a ukládání pracovního prostředí věci jen o něco usnadňuje. nejvíce pohodlný způsob spouštění příkazů MatLabu M-soubory, ve kterém můžete psát příkazy, provádět je všechny najednou nebo po částech, ukládat je do souboru a používat je později. Editor M-souborů je navržen pro práci s M-soubory. Pomocí tohoto editoru můžete vytvářet vlastní funkce a volat je, a to i z příkazového řádku.

    Rozbalte nabídku soubor v hlavním okně MatLabu a v odstavci Nový vyberte podpoložku M-soubor. Nový soubor se otevře v okně editoru M-souboru.

    Zadejte v editoru příkazy, které vedou ke konstrukci dvou grafů v jednom grafickém okně:

    x =;
    f = exp(-x);
    podkres (1, 2, 1)
    plot(x, f)
    g = sin(x);
    podkres (1, 2, 2)
    plot(x, g)

    Uložte soubor nyní s názvem mydemo.m do podadresáře práce hlavní adresář MatLab výběrem položky Uložit jako Jídelní lístek soubor editor. Chcete-li spustit všechny příkazy obsažené v souboru, vyberte položku Běh v nabídce ladit. Na obrazovce se objeví grafické okno. postava č.1, obsahující grafy funkcí. Pokud se rozhodnete vykreslit kosinus místo sinusu, pak jednoduše změňte řádek g = sin(x) v M-souboru na g = cos(x) a spusťte všechny příkazy znovu.

    Poznámka 1

    Pokud dojde při psaní k chybě a MatLab nerozezná příkaz, pak se příkazy provádějí až do nesprávně zadaného, ​​načež se v příkazovém okně zobrazí chybové hlášení.

    Velmi užitečnou funkcí, kterou poskytuje editor M-file, je provádění některých příkazů. Zavřete grafické okno postava Č.1. Vybírejte pomocí myši při stisknutém levém tlačítku nebo pomocí kláves se šipkami při stisknuté klávese , první čtyři příkazy programu a spusťte je z odstavce Vyhodnoťte Výběr Jídelní lístek Text. Upozorňujeme, že v grafickém okně byl zobrazen pouze jeden graf odpovídající provedeným příkazům. Pamatujte, že pro provedení některých příkazů je musíte vybrat a stisknout . Spusťte zbývající tři příkazy programu a sledujte stav grafického okna. Cvičte sami, zadejte některé příklady z předchozích cvičení v editoru M-souborů a spusťte je.

    Jednotlivé bloky M-souboru lze opatřit komentáře, které se při provádění přeskakují, ale jsou vhodné při práci s M-soubory. Komentáře v MatLabu začínají znakem procenta a jsou automaticky zvýrazněny zeleně, například:

    %vykreslování sin(x) v samostatném okně

    V editoru M-souborů lze otevřít více souborů současně. Přechod mezi soubory se provádí pomocí karet s názvy souborů umístěných ve spodní části okna editoru.

    Otevření existujícího M-souboru se provádí pomocí položky OTEVŘENO Jídelní lístek soubor pracovní prostředí nebo editor M-souborů. Soubor můžete také otevřít v editoru příkazem MatLab edit z příkazového řádku, zadáním názvu souboru jako argumentu, například:

    Příkaz edit bez argumentu má za následek vytvoření nového souboru.
    Všechny příklady, které se objeví v tomto a následujících cvičeních, je nejlepší napsat a uložit do souborů M, doplnit je komentáři a spustit z editoru souborů M. Aplikace numerických metod a programování v MatLabu vyžaduje vytvoření M-souborů.

    2. Typy M-souborů

    M-soubory v MatLabu jsou dvou typů: program-soubor(Script M-Files) obsahující posloupnost příkazů a funkční soubor(Function M-Files), které popisují uživatelem definované funkce.

    Souborový program (souborová procedura), který jste vytvořili při čtení předchozího pododdílu. Všechny proměnné deklarované v souborovém programu budou dostupné v pracovním prostředí po jeho spuštění. Spusťte souborový program uvedený v podsekci 2.1 v editoru souborů M? a zadejte příkaz whos na příkazovém řádku pro zobrazení obsahu pracovního prostředí. V příkazovém okně se objeví popis proměnných:

    » kdo
    Název Velikost Bytes Třída
    f 1x71 568 dvojité pole
    g 1x71 568 dvojité pole
    x 1x71 568 dvojité pole
    Celkový součet je 213 prvků s použitím 1704 bajtů

    Proměnné definované v jednom programovém souboru lze použít v jiných programových souborech a v příkazech spouštěných z příkazového řádku. Příkazy obsažené v souborovém programu se provádějí dvěma způsoby:

    • Z editoru M-souborů, jak je popsáno výše.
    • Z příkazového řádku nebo jiného programového souboru pomocí názvu M-souboru jako příkazu.

    Použití druhého způsobu je mnohem pohodlnější, zejména pokud bude vytvořený programový soubor později opakovaně používán. Ve skutečnosti se vytvořený M-soubor stává příkazem, kterému MatLab rozumí. Zavřete všechna grafická okna a na příkazový řádek napište mydemo, objeví se grafické okno odpovídající příkazům z programového souboru mydemo.m. Po zadání příkazu mydemo MatLab provede následující akce.

    • Zkontroluje, zda zadaný příkaz je název jedné z proměnných definovaných v runtime. Pokud je zadána proměnná, zobrazí se její hodnota.
    • Pokud není zadána proměnná, MatLab hledá zadaný příkaz mezi vestavěnými funkcemi. Pokud je příkaz vestavěnou funkcí, provede se.

    Pokud není zadána proměnná ani vestavěná funkce, MatLab začne hledat M-soubor s názvem a příponou příkazu m. Hledání začíná s aktuální adresář(Aktuální adresář), pokud v něm není M-soubor nalezen, MatLab prohledá adresáře nainstalované v hledat cesty(Cesta). Nalezený M-soubor se provede v MatLabu.

    Pokud žádná z výše uvedených akcí nebyla úspěšná, zobrazí se v příkazovém okně zpráva, například:

    »mydem
    ??? Nedefinovaná funkce nebo proměnná "mydem".

    M-soubory jsou zpravidla uloženy v adresáři uživatele. V následujících situacích systém MatLab můžete je najít, měli byste nastavit cesty označující umístění M-souborů.

    Poznámka 2

    Držet vlastní M-soubory mimo hlavní adresář MatLab následuje ze dvou důvodů. Za prvé, při reinstalaci MatLabu mohou být zničeny soubory, které jsou obsaženy v podadresářích hlavního adresáře MatLab. Za druhé, při spuštění MatLabu jsou všechny soubory podadresáře toolbox nějakým optimálním způsobem umístěny do paměti počítače, aby se zvýšil výkon. Pokud jste do tohoto adresáře zapsali M-soubor, můžete jej použít až po restartu MatLabu.

    3. Nastavení cest

    Ve verzi MatLab 6 .X určí se aktuální adresář a vyhledávací cesty. Tyto vlastnosti se nastavují buď pomocí příslušných dialogových oken nebo příkazů z příkazového řádku.

    Aktuální adresář je určen v dialogovém okně Aktuální Adresář pracovní prostředí. Okno je přítomno v pracovním prostředí, pokud je položka vybrána Aktuální Adresář Jídelní lístek Pohled pracovní prostředí.
    Aktuální adresář je vybrán ze seznamu. Pokud není v seznamu, lze jej přidat z dialogového okna Procházet pro složka, vyvoláte kliknutím na tlačítko umístěné napravo od seznamu. Obsah aktuálního adresáře se zobrazí v tabulce souborů.

    Vyhledávací cesty jsou definovány v dialogovém okně soubor Cesta navigátor cesty, přístupný z bodu soubor Cesta Jídelní lístek soubor pracovní prostředí.

    Chcete-li přidat adresář, klepněte na tlačítko Přidat Složka Procházet pro Cesta vyberte požadovaný adresář. Přidání adresáře se všemi jeho podadresáři se provede kliknutím na tlačítko Přidat s podsložkami. MATLAB Vyhledávání cesta. Pořadí hledání odpovídá umístění cest v tomto poli, prohledává se první adresář, jehož cesta je umístěna nahoře v seznamu. Můžete změnit pořadí vyhledávání nebo dokonce odstranit cestu k adresáři, pro který vyberte adresář v poli MATLAB Vyhledávání cesta a definujte jeho polohu pomocí následujících tlačítek:
    hýbat se na Horní - umístit na začátek seznamu;
    hýbat se Nahoru - posun o jednu pozici nahoru;
    Odstranit - odstranit ze seznamu;
    hýbat se Dolů - posunout o jednu pozici dolů;
    hýbat se na dno - umístit na konec seznamu.

    4. Příkazy pro nastavení cest.

    Kroky k nastavení cest v MatLab 6 .X duplicitní příkazy. Aktuální adresář se nastavuje příkazem cd, například cd c:\users\igor. Příkaz cd, volaný bez argumentu, vypíše cestu k aktuálnímu adresáři. Cesty se nastavují pomocí příkazu path, který se volá se dvěma argumenty:

    cesta (cesta, "c:\users\igor") - přidá adresář c:\users\igor s nejnižší prioritou vyhledávání;
    cesta ("c: \users\igor",cesta) - přidá adresář c:\users\igor s nejvyšší prioritou vyhledávání.

    Použití příkazu cesta bez argumentů způsobí, že se na obrazovce zobrazí seznam vyhledávacích cest. Cestu můžete ze seznamu odstranit pomocí příkazu rmpath:

    rmpath("c:\users\igor") odebere cestu k c:\users\igor ze seznamu cest.

    Poznámka 3

    Neodstraňujte zbytečně cesty k adresářům, zejména ty, u kterých si nejste jisti. Odstranění může vést k tomu, že některé funkce definované v MatLabu budou nedostupné.

    Příklad. Vytvořte v kořenovém adresáři disku D(nebo jakýkoli jiný disk nebo adresář, kde si studenti mohou vytvářet vlastní adresáře) adresář s vaším příjmením, např. WORK_IVANOV, a zapište tam M-soubor mydemo.m pod názvem mydemo3.m. Nastavte cesty k souboru a demonstrujte dostupnost souboru z příkazového řádku. Výsledky uveďte v laboratorní zprávě.

    Řešení:

    1. V kořenovém adresáři disku D vytvoří se adresář WORK_IVANOV.
    2. M-soubor mydemo.m je zapsán do adresáře WORK_IVANOV pod názvem mydemo3.m.
    3. Otevře se dialogové okno soubor Cesta Jídelní lístek soubor Pracovní prostředí MatLab.
    4. Tlačítko je stisknuto Přidat Složka a v zobrazeném dialogu Procházet pro Cesta je vybrán adresář WORK_IVANOV.
    5. Přidání adresáře se všemi jeho podadresáři se provede kliknutím na tlačítko Přidat s podsložky. V poli se zobrazí cesta k přidanému adresáři MATLAB Vyhledávání cesta.
    6. Pro uložení cesty stiskněte klávesu Uložit dialogové okno soubor Cesta.
    7. Správnost všech akcí se kontroluje zadáním příkazu mydemo3 z příkazového řádku. Na obrazovce se objeví grafické okno.

    5. Funkce souborů

    Souborové programy diskutované výše jsou posloupností příkazů MatLabu, nemají žádné vstupní ani výstupní argumenty. Chcete-li používat numerické metody a při programování vlastních aplikací v MatLabu, musíte být schopni vytvářet souborové funkce, které provádějí potřebné akce se vstupními argumenty a vracejí výsledek ve výstupních argumentech. Tato podčást obsahuje několik jednoduchých příkladů, které vám pomohou pochopit, jak pracovat s funkcemi souborů. Funkční soubory, stejně jako soubory procedur, se vytvářejí v editoru M-souborů.

    5.1. Souborové funkce s jedním vstupním argumentem

    Předpokládejme, že ve výpočtech je často nutné použít funkci

    Má smysl jednou zapsat funkční soubor a pak jej volat všude tam, kde je potřeba tuto funkci vyhodnotit. Otevřete nový soubor v editoru M-file a zadejte text výpisu

    funkce f = myfun(x)
    f= exp(-x)*sqrt((x^2+1)/(x^4+0,1));

    Slovo funkce v prvním řádku to specifikuje daný soubor obsahuje soubor funkcí. První řádek je záhlaví funkce, která hostí název funkce a seznamy vstupních a výstupních argumentů. V příkladu ve výpisu je název funkce myfun, jeden vstupní argument je x a jeden výstupní argument je f. Následuje titulek funkční tělo(v tomto příkladu se skládá z jednoho řádku), kde je vypočtena jeho hodnota. Je důležité, aby byla vypočtená hodnota zapsána do f. Středník je nastaven tak, aby se na obrazovce nezobrazovaly zbytečné informace.

    Nyní uložte soubor do svého pracovního adresáře. Vezměte prosím na vědomí, že výběr položky Uložit nebo Uložit tak jako Jídelní lístek soubor vede ke zobrazení dialogového okna pro uložení souboru v poli soubor název který již obsahuje název myfun. Neměňte jej, uložte soubor funkcí do souboru s navrhovaným názvem.

    Nyní lze vytvořenou funkci použít stejným způsobem jako vestavěné sin, cos a další, například z příkazového řádku:

    »y=myfun(1.3)
    Y =
    0.2600

    Volání vlastních funkcí lze provést ze souborového programu az jiné souborové funkce.

    Varování

    Adresář obsahující soubor funkce musí být aktuální, nebo cesta k němu musí být přidána do vyhledávací cesty, jinak MatLab funkci jednoduše nenajde, nebo místo ní zavolá jinou se stejným názvem (pokud se nachází v adresářích k dispozici pro vyhledávání).

    Funkční soubor zobrazený ve výpisu má jednu významnou nevýhodu. Pokus o vyhodnocení funkčních hodnot z pole má za následek chybu, nikoli pole hodnot, jak k tomu dochází při vyhodnocování vestavěných funkcí.

    » x = ;
    » y = myfun(x)
    ??? Chyba při použití ==> ^
    Matice musí být čtvercová.
    Chyba v ==> C:\MATLABRll\work\myfun.m
    Na řádku 2 ==> f = exp(-x)*sqrt((x^2+1)/(x^4+1));

    Pokud jste se naučili pracovat s poli, pak odstranění tohoto nedostatku nezpůsobí potíže. Při výpočtu hodnoty funkce stačí použít operace po jednotlivých prvcích.
    Upravte tělo funkce, jak je uvedeno v následujícím seznamu (nezapomeňte uložit změny do souboru myfun.m).

    funkce f = myfun(x)
    f = exp(-x).*sqrt((x.^2+1)./(x.^4+0.1));

    Nyní může být argumentem funkce myfun buď číslo, nebo vektor nebo matice hodnot, například:

    » x = ;
    » y = myfun(x)
    Y =
    0.2600 0.0001

    Proměnná y, do které se zapíše výsledek volání funkce myfun, se automaticky stane vektorem požadované velikosti.

    Vykreslete funkci myfun na segment z příkazového řádku nebo pomocí souborového programu:

    x =;
    y = myfun(x);
    plot(x, y)

    MatLab poskytuje další způsob, jak pracovat se souborovými funkcemi – používat je jako argumenty některých příkazů. Chcete-li například vykreslit graf, použijte speciální funkci fplot, která nahrazuje posloupnost výše uvedených příkazů. Při volání fplot je název funkce, jejíž vykreslování má být vykreslen, uzavřen v apostrofech, limity vykreslování jsou specifikovány v řádkovém vektoru dvou prvků

    fplot("myfun", )

    Plot myfun s plot a fplot na stejných osách, s hold on. Vezměte prosím na vědomí, že graf vykreslený pomocí fplot přesněji odráží chování funkce, protože fplot sám přebírá krok argumentu a snižuje jej v oblastech rychlých změn zobrazené funkce. Výsledky uveďte v laboratorní zprávě.

    5.2. Souborové funkce s více vstupními argumenty

    Zápis souborových funkcí s více vstupními argumenty je téměř stejný jako zápis jediného argumentu. Všechny vstupní argumenty jsou umístěny v seznamu odděleném čárkami. Například následující výpis obsahuje soubor funkcí, který vypočítává délku vektoru poloměru bodu ve 3D prostoru
    Výpis funkce souboru s více argumenty

    funkce r = poloměr3(x, y, z)
    r = sqrt(x.^2 + y.^2 + z.^2);

    » R = poloměr3(1, 1, 1)
    R=
    1.732

    Kromě funkcí s více vstupními argumenty umožňuje MatLab vytvářet funkce, které vracejí více hodnot, tzn. s více výstupními argumenty.

    5.3. Souborové funkce s více výstupními argumenty

    Souborové funkce s více výstupními argumenty jsou užitečné pro vyhodnocování funkcí, které vracejí více hodnot (v matematice se nazývají vektorové funkce). Výstupní argumenty jsou přidány oddělené čárkami do seznamu výstupních argumentů a samotný seznam je uzavřen v hranatých závorkách. dobrý příklad je funkce, která převádí čas zadaný v sekundách na hodiny, minuty a sekundy. Tento funkční soubor je zobrazen v následujícím seznamu.

    Výpis funkce pro převod sekund na hodiny, minuty a sekundy

    funkce = hms (s)
    hodina = patro (sec/3600);
    minuta = patro((s-hodina*3600)/60);
    sekunda = sek-hodina*3600-minuta*60;

    Při volání souborových funkcí s více výstupními argumenty by měl být výsledek zapsán do vektoru příslušné délky:

    » [H, M, S] = hms(10000)
    H=
    2
    M =
    46
    S=
    40

    6. Základy programování v MatLabu

    Soubor funkcí a soubor programu použitý v předchozích podkapitolách je nejvíce jednoduché příklady Všechny příkazy MatLabu v nich obsažené se provádějí postupně. Pro řešení mnoha vážnějších problémů je potřeba psát programy, ve kterých se cyklicky provádějí akce nebo se v závislosti na určitých podmínkách provádějí různé části programů. Podívejme se na hlavní operátory, které specifikují sekvence provádění příkazů MatLabu. Operátory lze použít jak v souborových procedurách, tak ve funkcích, což umožňuje vytvářet programy se složitou strukturou větvení.

    6.1. Příkaz smyčky pro

    Operátor je navržen tak, aby provedl daný počet opakujících se akcí. Nejjednodušší použití příkazu for je následující:

    for count = start:step:final
    Příkazy MatLabu
    konec

    Počet je zde proměnná smyčky, začátek je její počáteční hodnota, konečná je její konečná hodnota a krok je krok, o který se počet zvyšuje pokaždé, když vstoupí do smyčky. Cyklus skončí, jakmile se hodnota count stane větší než konečná. Proměnná smyčky může nabývat nejen celočíselných hodnot, ale také skutečných hodnot libovolného znaménka. Pojďme analyzovat aplikaci operátoru cyklu for na některých typických příkladech.
    Nechť je požadováno odvodit rodinu křivek pro , která je dána funkcí závislou na parametru pro hodnoty parametrů od -0,1 do 0,1.
    Zadejte text souboru procedury v editoru M-file a uložte jej do souboru FORdem1.m a spusťte jej ke spuštění (z editoru M-file nebo z příkazového řádku zadáním příkazu FORdem1 a stisknutím ):

    % souborový program pro konstrukci rodiny křivek
    x =;
    pro a = -0,1:0,02:0,1
    y = exp(-a*x).*sin(x);
    vydrž
    plot(x, y)
    konec

    Poznámka 4

    Editor M-souboru automaticky navrhuje umístit příkazy do smyčky, odsazené od levého okraje. Využijte této příležitosti pro pohodlí práce s textem programu.

    V důsledku spuštění FORdem1 se objeví grafické okno, které obsahuje požadovanou rodinu křivek.

    Napište programový soubor pro výpočet součtu

    Algoritmus pro výpočet součtu využívá akumulaci výsledku, tzn. nejprve je součet nula ( S= 0), poté do proměnné k jednotka je zadána, 1/ k Přidá se ! S a výsledek se vloží zpět S. Dále k se zvýší o jednu a proces pokračuje, dokud není poslední člen 1/10!. Souborový program Fordem2, zobrazený v následujícím seznamu, vypočítá požadovanou částku.

    Výpis souborového programu Fordem2 pro výpočet součtu

    % souborový program pro výpočet součtu
    % 1/1!+1/2!+ … +1/10!

    % Resetujte S pro nahromadění množství
    S = 0;
    % akumulace množství v cyklu
    pro k = 1:10
    S = S + 1/faktoriál (k);
    konec
    % vytisknout výsledek do příkazového okna S

    Zadejte soubor programu do editoru M-file, uložte jej do aktuálního adresáře v souboru Fordem2.m a spusťte. Výsledek se zobrazí v příkazovém okně, protože na posledním řádku souborového programu S obsaženo bez středníku pro zobrazení hodnoty proměnné S

    Všimněte si, že zbytek řádků v souborovém programu může způsobit výstup na obrazovku střední hodnoty, jsou zakončeny středníkem pro potlačení výstupu do příkazového okna.

    První dva řádky s komentáři nejsou náhodně odděleny prázdným řádkem od zbytku textu programu. Jsou zobrazeny, když uživatel pomocí příkazu help z příkazového řádku obdrží informace o tom, co Fordem2 dělá.

    >>helpFordem2
    souborový program pro výpočet součtu
    1/1!+1/2!+ … +1/10!

    Při psaní souborových programů a souborových funkcí nezanedbávejte komentáře!
    Všechny proměnné používané v souborovém programu budou dostupné v pracovním prostředí. Jsou to takzvané globální proměnné. Na druhou stranu souborový program může využívat všechny proměnné zadané v pracovním prostředí.

    Zvažte problém výpočtu součtu, podobný předchozímu, ale v závislosti na proměnné X

    Chcete-li vypočítat tuto částku v souborovém programu Fordem2, musíte změnit řádek uvnitř smyčky for na

    S = S + x.^k/faktoriál(k);

    Před spuštěním programu musíte definovat proměnnou X na příkazovém řádku pomocí následujících příkazů:

    >> x = 1,5;
    >>Fordem2
    S=
    3.4817

    Tak jako X může to být vektor nebo matice, protože souborový program Fordem2 používal k akumulaci součtu operace po prvcích.

    Před spuštěním Fordem2 je nutné přiřadit k proměnné X nějakou hodnotu a pro výpočet součtu například z patnácti výrazů budete muset provést změny v textu souborového programu. Je mnohem lepší napsat obecnou souborovou funkci, která bude mít hodnotu jako vstupní argumenty X a horní hranice částky, a výstup - hodnota částky S(X). Funkční soubor sumN je zobrazen v následujícím seznamu.

    Výpis soubor-funkce pro výpočet součtu

    funkce S = součetN(x, N)
    % souborová funkce pro výpočet součtu
    % x/1!+x^2/2!+ … +x^N/N!
    % využití: S = sumaN(x, N)

    % reset S pro akumulaci částky
    S = 0;
    % akumulace množství v cyklu
    pro m = 1:1:N
    S = S + x.^m/faktoriál(m);
    konec

    O použití funkce sumN se uživatel může dozvědět zadáním help sumN na příkazovém řádku. V příkazovém okně se zobrazí první tři řádky s komentáři, oddělené od textu funkčního souboru prázdným řádkem.

    Všimněte si, že proměnné funkce souboru nejsou globální (m ve funkčním souboru je sumN). Při pokusu o zobrazení hodnoty proměnné m z příkazového řádku se zobrazí zpráva, že m není definováno. Pokud je v pracovním prostředí globální proměnná se stejným názvem, definovaná z příkazového řádku nebo v souborovém programu, pak nijak nesouvisí s lokální proměnnou ve funkci souboru. Zpravidla je lepší psát si vlastní algoritmy ve formě souborových funkcí, aby proměnné použité v algoritmu neměnily hodnoty stejnojmenných globálních proměnných prostředí.

    Smyčky For mohou být vnořené do sebe, ale proměnné vnořených smyček se musí lišit.

    Smyčka for je užitečná pro provádění opakovaných podobných akcí, když je jejich počet předem určen. Flexibilnější smyčka while vám umožňuje obejít toto omezení.

    6.2. příkaz while loop

    Zvažte příklad pro výpočet součtu, podobný příkladu z předchozího odstavce. Je potřeba najít součet řady pro daný X(rozšíření v sérii):
    .

    Součet lze akumulovat, pokud členy nejsou příliš malé, řekněme více modulo. Smyčka for je zde nepostradatelná, protože počet členů není předem znám. Řešením je použít smyčku while, která běží tak dlouho, dokud je podmínka smyčky pravdivá:

    while podmínka smyčky
    Příkazy MatLabu
    konec

    V tomto příkladu podmínka smyčky předpokládá, že aktuální člen je větší než . K zápisu této podmínky se používá znaménko větší než (>). Text souborové funkce mysin, která vypočítává součet řady, je uveden v následujícím seznamu.

    Výpis souborové funkce mysin, která vypočítává sinus řadovým rozšířením

    funkce S = mysin(x)
    % Výpočet sinus sériovým rozšířením
    % Použití: y = mysin(x), -pi

    S = 0;
    k = 0;
    zatímco abs(x.^(2*k+1)/faktoriální(2*k+1))>1,0e-10
    S = S + (-1)^k*x.^(2*k+1)/faktoriální (2*k+1);
    k = k + 1;
    konec

    Vezměte prosím na vědomí, že cyklus while na rozdíl od for nemá proměnnou cyklu, takže jsme museli před začátkem cyklu přiřadit nulu k a zvýšit k o jednu uvnitř cyklu.
    Podmínka cyklu while může obsahovat více než jen znak >. Pro nastavení podmínek pro provedení cyklu jsou povoleny i další relační operace, jak ukazuje tabulka. 1.

    Tabulka 1. Vztahové operace

    Složitější podmínky jsou specifikovány pomocí logických operátorů. Například podmínka spočívá v současném splnění dvou nerovností a , a je zapsána pomocí logický operátor a

    and(x >= -1, x< 2)

    nebo ekvivalentně s &

    (x >= -1) & (x< 2)

    Logické operátory a příklady jejich použití jsou uvedeny v tabulce. 2.

    Tabulka 2. Logické operátory

    Operátor

    Zápis do MatLabu

    Ekvivalentní zápis

    Logika "A"

    a (x< 3, k == 4)

    (X< 3) & (k == 4)

    logické "NEBO"

    Nebo(x==1,x==2)

    (x == 1) | (x==2)

    záporné "NE"

    Při výpočtu součtu nekonečné řady má smysl omezit počet členů. Pokud se řada rozchází kvůli skutečnosti, že její členy nemají tendenci k nule, pak podmínka pro malou hodnotu aktuálního členu nemusí být nikdy splněna a program se zacyklí. Proveďte sečtení přidáním limitu k počtu termínů v podmínce cyklu while souboru funkce mysin:

    while (abs(x.^(2*k+1)/faktoriál(2*k+1))>1,0e-10)&(k<=10000))

    nebo v ekvivalentní formě

    while and(abs(x.^(2*k+1)/faktoriál(2*k+1))>1,0e-10), k<=10000)

    Organizace opakujících se akcí ve formě cyklů dělá program jednoduchým a srozumitelným, často je však vyžadováno provedení jednoho nebo druhého bloku příkazů v závislosti na určitých podmínkách, tzn. použijte větvený algoritmus.

    6.3. Podmíněný příkaz if

    Podmíněný operátor -li umožňuje vytvořit větvený algoritmus pro provádění příkazů, ve kterém za určitých podmínek funguje odpovídající blok příkazů nebo příkazů MatLabu.

    Příkaz if lze ve své jednoduché podobě použít k provedení bloku příkazů, když je splněna nějaká podmínka, nebo v konstrukci if-elseif-else k zápisu větvících algoritmů.
    Nechť je požadováno vyhodnocení výrazu . Řekněme, že provádíte výpočty v reálných číslech a chcete zobrazit varování, že výsledkem je komplexní číslo. Před výpočtem funkce byste měli zkontrolovat hodnotu argumentu x a zobrazit varování v příkazovém okně, pokud modul x nepřekročí jednu. Zde je nutné použít podmíněný příkaz if, jehož aplikace v nejjednodušším případě vypadá takto:

    pokud podmínka
    Příkazy MatLabu
    konec

    Pokud je podmínka splněna, jsou implementovány příkazy MatLab umístěné mezi if a end, a pokud podmínka splněna není, dojde k přechodu na příkazy umístěné za end. Při záznamu stavu se použijí operace uvedené v tabulce 1. 1.

    Soubor funkcí, který kontroluje hodnotu argumentu, je uveden v následujícím seznamu. Příkaz varování se používá k zobrazení varování v příkazovém okně.

    Výpis funkce souboru Rfun, který kontroluje hodnotu argumentu

    funkce f = Rfun(x)
    % vypočítá sqrt(x^2-1)
    % vytiskne varování, pokud je výsledek složitý
    % použití y = Rfun(x)

    % kontrola argumentů
    pokud abs(x)<1
    varování ("komplexní výsledek")
    konec
    % hodnocení funkce
    f = sqrt(x^2-1);

    Nyní volání Rfun s argumentem menším než jedna vypíše do příkazového okna varování:

    >> y = Rfun(0,2)
    výsledek je složitý
    y=
    0 + 0,97979589711327i

    Funkční soubor Rfun pouze varuje, že jeho hodnota je složitá a všechny výpočty s ním pokračují. Pokud komplexní výsledek znamená chybu výpočtu, pak by provádění funkce mělo být místo varování ukončeno příkazem error.

    6.4. Výpis větve if-elseif-else

    Obecně aplikace operátoru větve if-elseif-else vypadá takto:

    pokud podmínka 1
    Příkazy MatLabu
    jinak podmínka 2
    Příkazy MatLabu
    jinak podmínka 3
    Příkazy MatLabu
    . . . . . . . . . . .
    jinak podmínka N
    Příkazy MatLabu
    jiný
    Příkazy MatLabu
    konec

    V závislosti na výkonu jednoho nebo druhého N podmínky, odpovídající větev programu funguje, pokud žádná z N podmínky, pak jsou implementovány příkazy MatLab umístěné za else. Po provedení některé z větví se příkaz ukončí. Poboček může být libovolný počet nebo pouze dvě. V případě dvou větví se použije ukončení else a přeskočí se elseif. Příkaz musí vždy končit koncem.
    Příklad použití příkazu if-elseif-else je uveden v následujícím seznamu.

    funkce ifdem(a)
    % příklad s použitím příkazu if-elseif-else

    jestliže (a == 0)
    varování ("a rovná se nule")
    jinak pokud a == 1
    varování ("a rovná se jedné")
    jinak a == 2
    varování ("rovná se dvěma")
    jinak pokud a >= 3
    varování ("a, větší nebo rovno třem")
    jiný
    varování ("a je menší než tři a nerovná se nule, jedné, dvou")
    konec

    6.5. Provozovatel pobočky přepínač

    Příkaz switch lze použít k provedení vícenásobného výběru nebo větvení. . Je to alternativa k příkazu if-elseif-else. Obecně aplikace příkazu switch branch vypadá takto:

    switch switch_expression
    hodnota případu 1
    Příkazy MatLabu
    hodnota případu 2
    Příkazy MatLabu
    . . . . . . . . . . .
    hodnota případu N
    Příkazy MatLabu
    případ (hodnota N+1, hodnota N+2, ...)
    Příkazy MatLabu
    . . . . . . . . . . . .
    případ (hodnota NM+1, hodnota NM+2,…)
    v opačném případě
    Příkazy MatLabu
    konec

    V daný operátor nejprve se vyhodnotí hodnota switch_expression (může to být skalární číselná hodnota nebo znakový řetězec). Tato hodnota je následně porovnána s hodnotami: hodnota 1, hodnota 2, ..., hodnota N, hodnota N+1, hodnota N+2, ..., hodnota NM+1, hodnota NM+2, ... ( které může být také číselné nebo řetězcové) . Pokud je nalezena shoda, provedou se příkazy MatLab následující za odpovídajícím klíčovým slovem case. Jinak se provedou příkazy MatLab mezi klíčovými slovy else a end.

    Může být libovolný počet řádků s klíčovým slovem case, ale musí existovat jeden řádek s klíčovým slovem jinak.

    Po provedení kterékoli z větví přepínač opustí, zatímco hodnoty zadané v ostatních případech nejsou kontrolovány.

    Použití přepínače ilustruje následující příklad:

    funkce demswitch(x)
    a = 10/5 + x
    spínač a
    případ-1
    varování("a = -1")
    případ 0
    varování("a = 0")
    případ 1
    varování("a = 1")
    případ (2, 3, 4)
    varování ("a je 2 nebo 3 nebo 4")
    v opačném případě
    varování ("a se nerovná -1, 0, 1, 2, 3, 4")
    konec

    >>x=-4
    demswitch(x)
    a =
    1
    varování: a = 1
    >>x=1
    demswitch(x)
    a =
    6
    varování: a se nerovná -1, 0, 1, 2, 3, 4

    6.6. Prohlášení o přerušení smyčky přestávka

    Při organizování cyklických výpočtů je třeba dbát na to, aby se uvnitř cyklu nevyskytly žádné chyby. Řekněme například, že je dáno pole x sestávající z celých čísel a je nutné vytvořit nové pole y podle pravidla y(i) = x(i+1)/x(i). Je zřejmé, že problém lze vyřešit pomocí cyklu for. Pokud je ale jeden z prvků původního pole roven nule, výsledkem dělení bude inf a následné výpočty mohou být zbytečné. Této situaci lze předejít opuštěním smyčky, pokud je aktuální hodnota x(i) nulová. Následující fragment programu ukazuje použití příkazu break k přerušení smyčky:

    pro x = 1:20
    z=x-8;
    pokud z==0
    přestávka
    konec
    y = x/z
    konec

    Jakmile se proměnná z stane 0, smyčka se ukončí.

    Příkaz break umožňuje předčasně ukončit provádění cyklů for a while. Mimo tyto smyčky příkaz break nefunguje.

    Pokud je příkaz break použit ve vnořené smyčce, opustí se pouze z vnitřní smyčky.

    Návod

    V prostředí MATLAB existuje několik provozních režimů. Nejjednodušší je zadávat příkazy přímo do příkazového okna ( příkazové okno).
    Pokud to není vidět v rozhraní programu, musíte jej otevřít. Příkazové okno najdete přes nabídku plocha počítače -> příkazové okno.
    Například do tohoto okna zadejte příkazy "x = ; y = sqrt(x); plot(y);", jeden po druhém a stiskněte klávesu "Enter" ( Vstupte). Program okamžitě vytvoří X proměnných, vytvoří proměnnou Y a vypočítá její hodnoty pro danou funkci a poté sestaví její graf.
    Pomocí klávesových šipek „Nahoru“ a „Dolů“ v příkazovém okně můžeme přepínat mezi všemi zadanými příkazy, v případě potřeby je ihned měnit a opětovným stisknutím Enter odeslat prostředí MATLAB k provedení.
    Komfortní? Nepochybně. A hlavně – velmi rychle. Všechny tyto akce trvají několik sekund.
    Co když ale potřebujete složitější organizaci týmů? Pokud potřebujete cyklické provádění některých příkazů? Zadávat příkazy ručně po jednom a pak je dlouho hledat v historii může být docela zdlouhavé.

    Chcete-li zjednodušit život vědce, inženýra nebo studenta, okno editoru ( Editor). Otevřeme okno editoru přes nabídku plocha počítače -> Editor.
    Zde můžete vytvářet nové proměnné, sestavovat grafy, psát programy (skripty), vytvářet komponenty pro výměnu s jinými prostředími, vytvářet aplikace s uživatelské rozhraní(GUI), stejně jako upravit stávající. Ale v současné době máme zájem napsat program, který obsahuje funkce pro budoucí opětovné použití. Pojďme tedy k menu. soubor a vybrat si Nový -> M soubor.

    Do pole editor napíšeme jednoduchý program, ale trochu to zkomplikujeme:

    funkce draw_plot(x)
    y = log(x); % Nastavte první funkci
    subplot(1, 2, 1), plot(x, y); % Sestavení prvního grafu
    y = čtverec (x); % Nastavte druhou funkci
    subplot(1, 2, 2), plot(x, y); % Sestavíme druhý graf

    Přidali jsme druhou funkci a zobrazíme dva grafy najednou vedle sebe. Znak procenta označuje komentáře v prostředí MATLAB.
    Nezapomeňte program uložit. Standardní přípona souboru s programem Matlab je *.m.
    Nyní zavřete editor a okno s grafem, který jsme vytvořili dříve.

    Vraťme se do příkazového okna.
    Historii příkazů můžete vymazat, aby nás nerušily zbytečné informace. Chcete-li to provést, klepněte pravým tlačítkem myši na pole pro zadání příkazu a do otevřeného kontextová nabídka vybrat předmět Vymazat příkazové okno.
    Proměnná X nám po předchozím experimentu zůstala, nezměnili jsme ji ani nevymazali. Proto v příkazovém okně můžete okamžitě zadat:
    kresleni_plot(x);
    Uvidíte, že MATLAB načte naši funkci ze souboru a provede ji a nakreslí graf.