1. díl - Seznámení s uživatelským prostředím

Software Matlab Seznámení s uživatelským prostředím

Matlab je unikátní a také universální prostředí pro řešení složitých matematických, fyzikálních či (mnou oblíbených :-D) biomedicínských problémů. Nabízí ale také vývojové prostředí, ve kterém můžete vytvořit programy, které budou řešit daný problém s vámi zadanými parametry. Upřímně řečeno s ním můžete řešit absolutně cokoliv. Hlavním kouzlem Matlabu je, že nemusíte řešit, jak to naprogramujete, ale stačí vám vědět, co programujete. Program sám o sobě má nějaké hlavní jádro, ke kterému jsou připojeny další pluginy či knihovny (zvané Toolboxy), které obsahují předem naprogramované funkce. Ty pak stačí už jen používat. Základní verze již většinou zahrnují velké množství těchto Toolboxů. Soustředíte se tedy pouze na váš problém a všechno jde hned snáz…

Matlab není vůbec levnou záležitostí a proto se běžný (a často i krátkodobě užívající) uživatel uchýlí k sehnání matlabu jinou cestou. Pro orientaci přikládám odkaz na aktuální ceníky Matlabu - Zde.

Historie

Matlab byl vytvořen na konci sedmé dekády dvacátého století a to profesorem, z katedry informačních technologií na univerzitě v Novém Mexiku, Clevem Molerem. Vytvořil jej proto, aby jeho studenti mohli používat složitější matematické operace bez nutnosti znát nějaký programovací jazyk, ve kterém byly počty ještě o mnoho složitější. Po tom, co se rozšířil i na další univerzity a stal se tak známým, byl Matlab přepsán do jazyka C a stal se plnohodnotným produktem, který nabídla na trh firma Mathworks a dodnes jej stále vyvíjí.

Na počátku své kariéry a to v roce 1985, kdy byla vydána první verze pro stolní počítače, měl Matlab poměrně velké problémy s pamětí, která byla na těchto strojích dostupná, protože to omezovalo maximální velikosti pracovních dat, tedy matic, které jsou základem Matlabu. S postupným vývojem silnějších počítačů se vyvíjel samozřejmě i Matlab a velký pokrok nastal, když přišla na trh verze Matlabu 386, která dokázala pracovat s virtuální pamětí, která pak značně překračovala skutečnou paměť a díky tomu bylo možné vyřešit i problém s velikostmi matic, ovšem toto řešení zpomalilo rychlost výpočtů.

Část I. – Seznámení s uživatelským prostředím

Tak pro začátek bych rád uvedl, že tato část týkající se GUI je platná pro verzi Matlab 8 (Release R2012b), a proto nemusí být všechny funkce přístupné i na jiných verzích.

Takto vypadá uživatelské rozhraní Matlabu. Ale nebojte, pokud se vám to nelíbí, nastavení nabízí spoustu dalších možností. Na obrázku vidíte, většinou, základní rozložení a to, že Matlabovský editor kódu je přímo uprostřed hlavního okna. Dá se to samozřejmě změnit, pokud by vám to překáželo, ale jde o to, že všechny textové výstupy vašeho skriptu se vypisují do Command Window, které je na obrázku hned pod editorem. Dle mého je to takto daleko přehlednější. Popíši vám tedy, co které okno znamená.

  • Hlavní okno je složeno z několika funkčních bloků, které obsahují informace o všem možném a také funkce, týkající se vašeho programování. Hlavní okno má tři záložky funkcí a ty jsou na obrázku označeny hnědou barvou. Záložky ohraničeny žlutou barvou náleží editoru kódu. Tyto záložky ovšem nemusí být součástí hlavního okna, pokud máte editor odděleně.
  • Červenou barvou ohraničená kolonka s lokální adresou určuje místo, kam se ukládají vaše skripty, vytváří nebo odkud se načítají soubory (pokud s nimi váš skript pracuje). Jedná se o absolutní cestu k vaší pracovní složce, v Matlabu nazývané Current Folder.
  • V levé části je průzkumník dané adresy (Current Folder), ze kterého můžete rychle přistupovat k souborům v pracovní složce.
  • Podokno Command Window je Matlabovskou obdobou konzole. Vaše programy jsou v podstatě konzolovými aplikacemi Matlabu. Pokud ovšem váš program zahrnuje vykreslení grafů či jiných grafických zobrazení, otevřou se v oknech zvaných Figures, která jsou buď okna samostatná nebo jako bloky zapuštěné do hlavního okna.
  • Podokno Command History zaznamenává vámi zapsané příkazy do Command Window. Nezaznamenává ovšem příkazy spuštěné ze skriptů (Tím myslím příkazy volané v rámci spuštění celého skriptu, pokud budete skript spouštět po částech, budou i tyto příkazy zaznamenány).
  • Podokno Workspace je velmi hezky vymyšlenou obdobou debugu. Zobrazuje veškeré proměnné, jejich rozměry a hodnoty, datové typy a mnoho dalšího. A docela užitečné je, že záložka HOME nabízí možnost uložit hodnoty z tohoto okna do souboru. Ukládat proměnné z Workspace je také možné jednotlivě a to pomocí příkazů či kontextového menu vyvolaného po pravém kliknutí myši.

Způsoby práce

V Matlabu můžete pracovat dvěma způsoby a to:

  • Postupným zápisem do Command Window.
    • Existuje možnost ukládat veškerý váš postup tak, že než začnete, použijete příkaz „diary <název souboru.přípona>“ (např. „diary test.txt“) a až skončíte, vypnete logování příkazem „diary off“. Vhodný způsob, když nepracujete s žádnými soubory a jen potřebujete něco vypočítat.
  • Vytvořením skriptu a jeho následným spuštěním.
    • Máte skript stále před sebou
    • Můžete přidávat komentáře
    • Možnost spouštět pouze části skriptu
    • Můžete svůj skript debugovat!

Nejužitečnější pomůcka - Nápověda alias klávesa F1

  • Kdykoliv si nebudete vědět rady, použijte nápovědu (Magická klávesa F1)!
  • Pokud půjde o argumenty ve funkci, označte si požadovanou funkci a zmáčkněte F1, Matlab vám to poví... (Nápověda je funkční i když nejste online)
  • Případně je možné použít příkaz „help <název_funkce>“, např.: „help diary“, který vám vypíše do Command Window popis dané funkce. Použití klávesy F1 je ovšem výhodnější v tom, že vám otevře nápovědu v novém okně a v jistém grafickém formátování, s případnými návrhy souvisejících funkcí. :)

Pár problémů, které uživatelé často hledají

  • Jak změnit velikost písma?
    • Záložka HOME -> Preferences -> Fonts ->a hned v prvním řádku je v prvé části vysouvací seznam, ze kterého si vyberte požadovanou velikost.
  • Jak zrušit automatické zalamování komentářů?
    • Záložka HOME -> Preferences -> Editor/Debugger -> Language -> Blok „Comment Formating“ -> a odškrtněte „Wrap comments automatically while typing“.
  • Jak změnit rozložení hlavního okna?
    • Záložka HOME -> Layout -> a pak zde již je několik předpřipravených rozložení nebo si můžete rozhodit okna dle svého.

Pár dodatků na závěr

  • Pokud budete chtít svůj skript spustit, musí se soubor skriptu nacházet v Current Folder!
  • Neumíte-li nalézt editor, otevírá se po otevření nového skriptu a to buď ze záložky HOME či klávesovou zkratkou Ctrl+N
  • Velkou změnou bude pro všechny programátory, že každý zápis řetězce je ohraničen apostrofy na místo uvozovek
  • Celý váš program, který napíšete v editoru a spustíte, se vám vypíše do Command Window.
  • Máte rádi středníky? Pokud jej ve vašem skriptu zapomenete, vesměs se nic nestane, ale pokud jde o jakoukoliv definici proměnné či přiřazení nové hodnoty k proměnné a vy daný příkaz neukončíte středníkem, bude celý obsah proměnné vypsán do Command Window (což může mít za následek značné problémy, zvláště když pracujete s velkými objemy dat, např. obrazovými maticemi).
  • Pokud už se Vám podaří spustit něco a uvidíte, že jste udělali chybu, např. výše zmíněný výpis 1000000000 hodnot do Command Window nebo jednoduché zacyklení a víte, že program je v háji, klikněte do Command Window a použijte klávesovou zkratku Ctrl+C, která zapřičiní zastavení skriptu.

Ale více v dalším dílu, kde si rozebereme základní systém psaní skriptů a samozřejmě příkazy.


 

  Aktivity (4)

Článek pro vás napsal David Oczka
Avatar
Autor se věnuje vývoji aplikací pro medicínské účely. Nejčastěji používá jazyk C# nebo jazyk systému Matlab. Ale nebojí se ani jiných programovacích jazyků. Okrajově vyvíjí také pro operační systém Android a iOS.

Jak se ti líbí článek?
Celkem (4 hlasů) :
55555


 


Miniatura
Všechny články v sekci
Matlab
Miniatura
Následující článek
První skript a základní příkazy

 

 

Komentáře
Zobrazit starší komentáře (7)

Avatar
karels
Člen
Avatar
karels:

No Octave je fajne ...
není od věci vyžutí třeba GUIOctave nebo QTOctave rozhraní ...
a na výpočty taky není špatnej FreeMath

Odpovědět 21.10.2013 0:16
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Avatar
karels
Člen
Avatar
karels:

Jinak na první díl je to opravdu nadchnutelné ...
už vidím poznámku : mlč nejsi ani redaktor :D :D ale je mi to jedno :D

kdyby jsi jako na úvod ukázal např nějaké generování "zábavných funkcí" do 3D plotu (a že v tom jde dobře blbnout :D) ... bylo by to zajímavější - aspoň první odstavec ... nebo by stačilo obecné věci k matematice které se řeší na vejškách kde se to bere ... a to derivace a integrály (samo je to podmíněné tool boxem pro symbolické výpočty) plotrování funkcí - něco co budou lidi hledat ... řekněme že lidé hledají řešení a ne se jen tak něco naučit většinou :)

můj osobní názor - byl by lepší článek bokem o ovládání a GUI ... ale v seriálu se věnovat hlavně podstatě, řešení předpokládám výpočetních a zobrazovacích problémů ...
nebo případně jestli máš k dispozici simulink, v tom se dá také dělat hodně věcí ale už zase jiných

a k druhému dílu ... myslím, že by nebylo od věci uživatele zacvičit v příkazů ručně a až pak je nutit "kódit" skripty ...
především jde o zvyk a znalost závorkování dělení zprava dělení zleva, modulo ...
tohle vychází ze mě jelikož programovací tutoriály začínající "hello wordl" moc v lásce nemám :D

mimochodem je k matlabu je dobrej tutoš jestli se ho teprve učíš, je dostupnej jako pdf - ale jde v něm hlavně o věci k funkcím matlabu "kódění", dá se to využít jako dobrej lexikon ... http://www.cdm.cas.cz/…tutorial.pdf

neber tohle jako kritiku jen jako komentář někoho kdo už má matlab za sebou ... musel ho používat k výpočtům elektro obvodů a pár lidem ho už vysvětloval ...

Odpovědět  +1 21.10.2013 0:34
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Avatar
karels
Člen
Avatar
karels:

Ano toto by hledal vysokoškolák techniky v prvním ročníku (pravděpodobný odběratel podobného článku/seriálu), k nějakému průběžnému zápočťáku kdyby neměl možnost přístupu na net během testu ... pokud by neznal WolframAlpha nebo neměl stáhnutou Mathematicu :)

Odpovědět 21.10.2013 0:37
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Avatar
TH23
Člen
Avatar
TH23:

Odpověď je jednoduchá: protože je mnoho institucí (myšleno jak výzkumná centra, tak firmy), které Matlab aktivně využívají.
Matlab je výkonný výpočetní nástroj. Využívá se k řešení celého spektra zejména numerických úloh, simulaci modelů z různých oborů, k programování HW a komunikaci se zařízením přes IO při vývoji.
Proč dát přednost před programy v jiných jazycích? To je úplně jednoduché. Potřebuji rychle vidět odezvu na jednotkový skok dynamického systému. Tento systém mám popsán pomocí diferenciálních rovnic. V Matlabu je to otázka několika minut. Za jak dlouho to dokážeš napsat v C#? Proč se velmi často používá Simulink? Protože "programování" v grafickém programovacím jazyku je jednoduché, rychlé a hlavně mnohem přehlednější, než programování strukturované. Vývojář/vědec nemusí být nutně excelentní programátor, aby mohl řešit simulace a výpočty.
Uvědom si jednu věc. Matlab je komerční produkt určený pro vývoj. Pokud si chceš doma zkoušet jen tak pro srandu nějaké věci, Matlab není určen pro tebe. Můžeš samozřejmě použít nějakou GPL verzi podobných softů, které ti na základní výpočty budou stačit. Pokud ale řešíš složitější úlohy, Matlab a jeho Toolboxy jsou na úplně jiné úrovni.

 
Odpovědět 21.10.2013 11:57
Avatar
Kit
Redaktor
Avatar
Odpovídá na TH23
Kit:

Líbila se mi věta od karels
kdyby jsi jako na úvod ukázal např nějaké generování "zábavných funkcí" do 3D plotu
To je právě ten způsob, jak by měl být program prezentován. Aby si uživatel nejprve s tím programem hrál a tím se naučil, co vlastně umí.

Motivace tím "množstvím institucí" je chybná. To je stejně zavádějící jako demagogický argument "používej Windows, protože ho používají všichni".

Odpovědět 21.10.2013 12:06
Vlastnosti objektů by neměly být veřejné. A to ani prostřednictvím getterů/setterů.
Avatar
karels
Člen
Avatar
Odpovídá na TH23
karels:

Ano uvádíš zde věci, které jsou fakticky zprávné, ale kdo zde bude hledat pomoct ... pravděpodobně nějaký student nebo někdo kdo bude mít o tento typ softwaru zájem se v něm "povrtat"

Do tohto seriálu jsem kliknul jen kvůli tomu, že nucenou výuku a více méně nucené používání již za sebou. Ano je to nástroj který dokáže neuvěřitelně usnadnit práci při simulacích a výpočtech a tak.

Ale myslím, že zdejší Moderátor namítal námitky nad tématikou úvodoního(tohoto prvního) článku, a vzjádřil zklamání jelikož by očekával že bude lákat na nějaké věci které můžou být prospěšné, ve zdejší "komunitě" - respektive prospěšné pro studenty které by sem zavítali. A ne BFU seznámení s GUI ala uživatelská softwarová dokumentace.

Jen píši názor, a dojem z diskuze výše mezi autorem a moderátorem.
Bohužel asi pro tebe a autora s tím že by to chtělo trošku atraktivnější první článek a pak se úplně zahryznout do toho čím se Matlab v základu (bez toolboxů) se dá použít => úvodní matematika na vysokých školách - matice, grafy funkcí a tak.

Odpovědět 21.10.2013 16:21
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Avatar
xxxvodnikxxx
Člen
Avatar
xxxvodnikxxx:

jé matlab :D
možná bych dal do kupy ještě některý materiály z vejšky, když ne matlab, tak simulink :) ale matlab asi taky..
kdyžtak můžu poskytnout :)
Jak teorii, tak i pár příkládků

Odpovědět 21.10.2013 18:33
Unix- svět, kde chcete být nulou :) (UID)
Avatar
TH23
Člen
Avatar
Odpovídá na Kit
TH23:

Tak jsem si znovu v klidu přečetl komentáře a dospěl jsem k vyvedení z omylu. Pokud to dobře chápu, tak jsi v prvním komentáři vytýkal to, co ti v článku chybí - já to původně vzal jako "útok" na užitečnost Matlabu (má ješitnost se probudila, protože s Maltabem pracuji dnes a denně:) ). Tak se za nedorozumění omlouvám.

Jinak k tvé reakci. Souhlasím s tím, že motivace/účelovost Matlabu mohla být v článku lépe rozvedena, ale jako první napsat kus kódu, který vyplodí nic neříkající barevný obrázek, to nebude ta nejlepší cesta. Nemluvě o tom, že Matlab není k tomuto primárně určen. Lepší motivace ano, ale tak aby to korespondovalo s tím, k čemu se Matlab opravdu v praxi využívá. To je alespoň můj názor.

 
Odpovědět  +2 21.10.2013 19:05
Avatar
TH23
Člen
Avatar
Odpovídá na karels
TH23:

Pokud jsem to dobře pochopil, tak je tohle téma bráno jako výukový seriál. Ono je vždycky těžké někde začít. S popisem cílové skupiny souhlasím. O to víc si myslím, že autor zvolil dobře. Pro úplného začátečníka to může být přínos. Pro zkušenějšího uživatele, který hledá radu na dané téma budou následovat další díly se specifickým problémem.

S výukou programování mám několikaleté zkušenosti. Zcela upřímně musím říci, že popis GUI je základ, bez kterého se někteří nedokáží obejít - ti ostatní prostě větší část této kapitoly přeskočí :).

 
Odpovědět  +1 21.10.2013 19:15
Avatar
karels
Člen
Avatar
Odpovídá na TH23
karels:

Tak nikdo neříkal že tu musí viset kilometrovej kód který vygeneruje luxusní graf totálně bláznivé funkce, kterou jsme museli derivovat, integrovat a na konec na ní nasadit nějaké transformace.

Ale určitě obrázek s názvem funkce řeš dif rovnice ...
a zobrazen výstup třeba diferenciální rovnice 2. řádu by byl motivací pro ty technické čtenáře, že se zde dozví jak třeba na to, a jak si usnadní pomocí tohoto seriálu další studium. Nebo obyč řešení soustavy rovnic - např vypsaná matice 5x5 výsledek - kořeny ...

Upřímně, studuju FEL a dost studentů třeba simulace v Matlab/Octave řešili sháněním někoho kdo tomu trošku rozumí aby jim to udělal s tím, že někde zamrzli. Problémů je tam dost to žádná. Pro lidi co v životě nešáhli na PRG ještě víc.

A obrázek stylu kapky - ala Octave icon by určitě byl "atraktivní" minimálně by ukázal co "umí" jelikož máš pravdu že matlab je nadmíru komplexní a luxusní nástroj pro hodně použití.

Odpovědět 11.11.2013 17:16
Nejvíc času promarníme tím, že usilujeme získat čas. - John Steinbeck
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 17. Zobrazit vše