Tento článek je pokračováním článku Jak si usnadnit (spolu)práci v MATLABu – Projects, ze dne 22.7.2020.
Jak jsem minule slíbil, předvedeme si nyní některé další možnosti projektů v MATLABu.
Budu pokračovat v projektu z předchozího článku. Po spuštění MATLABu existující projekt nejsnadněji otevřeme tak, že zvolíme v záložce HOME šipku pod tlačítkem Open a v části RECENT PROJECTS vybereme náš projekt Tipy_a_triky:
V adresáři Data mi od minula přibyly soubory data2.xlsx – data6.xlsx. Rád bych je zahrnul do projektu. V okně projektu se na liště nad seznamem adresářů a souborů můžeme přepínat mezi volbou All a Project (n), kde n je počet souborů zahrnutých do projektu. Klikneme na All a tím se přepneme ze zobrazení pouze souborů zahrnutých do projektu na zobrazení všech souborů:
Na stejné liště je editační pole na filtrování podle textu. Primárně se zadaný text hledá pouze v názvech souborů, ale při vložení textu se pod lištou nabídne možnost „Search inside files instead“. Pokročilejší vyhledávání lze nastavit v okně Filter Builder. To otevřeme tlačítkem napravo od editačního pole:
Nastavíme filtr tak, aby se nám zobrazovaly pouze soubory, které chceme přidat do projektu. Jedná se o soubory s příponou .xlsx:
Zvolíme Apply. Poté vybereme všechny zobrazené soubory klávesovou zkratkou CTRL + A, klikneme do vybrané oblasti pravým tlačítkem myši a zvolíme Add to Project:
Vybrané soubory jsou nyní součástí projektu. Z posledního obrázku vidíme, že v okně projektu lze se soubory pracovat podobně jako v Current Folderu – Open, Open Outside MATLAB, …
Kliknutím na Project (13):
se vrátíme do zobrazení pouze souborů projektu.
U větších aplikací se snadno stane, že je součástí projektu velké množství souborů. Jak si přesto udržet v souborech přehled? Tzv. Labels nám umožňují soubory značit. V okně Filter Builder, které jsme si před chvílí ukazovali, můžeme v části „Label:“ použít existující značení pro nastavení filtru. V okně Dependency Analyzer, které si předvedeme za chvíli, můžeme pomocí značení soubory barevně rozlišovat i filtrovat. Podíváme se tedy na to, jaké značení máme v projektu vždy k dispozici a jak vytvořit vlastní značky a vlastní kategorie značek. V podokně projektu s názvem Labels máme předvytvořenou kategorii Classification a v této kategorii vidíme několik značek. Všimněte si, že skripty, funkce a třídy mají automaticky přirazeno označení Design. Přes kontextové menu vyvolané pravým tlačítkem myši přidáme volbou Create New Label do této kategorie další značku a pojmenujeme ji Input:
Vybereme a označíme všechny vstupní datové soubory a z kontextového menu zvolíme Add Label. V okně Select Label/Labels to Add vybereme značku Input z kategorie Classification a potvrdíme OK. V okně projektu přísluší kategorii značek samostatný sloupec a pro každý soubor v něm vidíme příslušnou značku, pokud ji má v dané kategorii přiřazenou:
Kontextové menu okna Labels nám umožňuje vytvořit novou kategorii značek. Vytvoříme kategorii s názvem Source, která bude multi-valued a typu String:
Do nové kategorie přidáme značky Martina a Jarda. To budou v mém případě jména těch, co mi předávají soubory s daty pro analýzu. Datové soubory označíme značkami kategorie Source stejným způsobem jako jsme je značili jako Input.
Kromě kategorií značek můžou být v okně projektu zobrazeny i jiné vlastnosti souborů. Například vlastnost Status nám ukazuje, zda je daný soubor zahrnut do projektu. Které vlastnosti souborů se nám v okně projektu budou zobrazovat, lze nastavit kliknutím na ozubené kolečko napravo na liště a zvolením Show:
Důležitý nástroj, který nám zobrazí vzájemné závislosti mezi soubory v projektu, je Dependency Analyzer. Spustíme ho pomocí tlačítka na panelu nástrojů v záložce PROJECT:
Dependency Analyzer se nám otevře v samostatném okně. Vidíme zde, že skript Priklad1.m závisí na třídě ConfidenceChart.m a na datovém souboru data1.xlsx, a skript Priklad2.m závisí na stejném datovém souboru a na třídě BorderLine.m:
Označením šipky uvidíme napravo v PROPERTIES podrobnosti o dané závislosti. Například řádky kódu, které ji mají na svědomí. Ve skriptu Priklad1 načítám data ze souboru data1.xlsx na řádku 1 a volám ConfidenceChart na řádku 2.
Co když budu chtít kolegovi předat několik svých skriptů. Co všechno pro jejich spuštění potřebuje? Zjistím to tak, že v nástroji Dependency Analyzer zvolené skripty označím (myší za současného držení klávesy Shift) a v panelu nástrojů kliknu na Required. V grafu závislostí mi zůstanou pouze potřebné soubory pro jejich spuštění. Více možností nástroje Dependency Analyzer najdete v dokumentaci.
Když jsem viděl grafické výstupy příkladů v mém projektu, viz. například poslední graf v 1. dílu, přišlo mi, že značky jednotlivých bodů jsou příliš velké. Vlastnost MarkerSize bychom sice mohli nastavit přímo v našich grafických třídách ConfidenceChart.m a BorderLine.m. Ukážeme si zde ale, jak při otevření projektu automaticky nastavit defaultní hodnotu vlastnosti pro daný typ grafického objektu. Vytvoříme skript s příkazem, který nastaví defaultní hodnotu vlastnosti MarkerSize pro grafické objekty Line, a pojmenujeme si tento skript pospusteni.m. Vytvoříme dále skript, který vrátí defaultní hodnotu té samé vlastnosti do továrního nastavení, a pojmenujeme si ho prizavreni.m:
Skript prizavreni.m ještě smaže proměnné z workspace, zavře všechna okna figure a smaže výstupy v Command Window. Nyní nastavíme, aby se skript pospusteni.m automaticky spustil při otevření projektu a skript prizavreni.m při zavření projektu. Nejprve přidáme oba skripty do našeho projektu:
Následně v okně projektu na panelu nástrojů klikneme na Startup Shutdown:
Otevře se nám okno, kde můžeme přidávat soubory k automatickému spuštění při otevření či zavření projektu i nastavovat pořadí, v jakém se spouští, máme-li jich více. Přidáme soubory prispusteni.m a pozavreni.m:
Nyní projekt zavřeme, znovu otevřeme a spustíme Priklad1:
Můžete si tento graf porovnat s tím z předchozího článku.
Poslední, co si dnes ukážeme, jsou tzv. Project Shortcuts. V okně projektu mají vyhrazeny samostatnou záložku. Označíme si Priklad1.m a na panelu nástrojů pod záložkou PROJECT SHORTCUTS zvolíme New Shortcut:
V okně Create New Shortcut potvrdíme OK:
a na panelu nástrojů nám přibude tlačítko se zvoleným názvem:
Nyní můžeme skript Priklad1.m spustit pouhým kliknutím na toto tlačítko.
V článku Jak si usnadnit (spolu)práci v MATLABu – Projects jsme si ukázali, jak projekt vytvořit. V tomto (druhém) díle jsme si předvedli, jak do existujícího projektu přidat další soubory, jak soubory značit (labelovat) a jak mezi nimi filtrovat. Pomocí nástroje Dependency Analyzer jsme prozkoumali závislosti mezi soubory v projektu. Následně jsme do projektu přidali skript, který se automaticky spustí při otevření projektu a jiný skript, který se automaticky spustí při zavření projektu. Nakonec jsme si na panel nástrojů přidali tzv. zkratku (shortcut) na spuštění vybraného skriptu jedním kliknutím. Pokud by Vás zajímaly další informace o projektech v MATLABu, najdete níže odkazy na příslušné články v dokumentaci.
Užitečné odkazy:
Jan Studnička (HUMUSOFT), 19.8.2020