Základy programování v Matlabu - část 9

Ing. Petr Pokorný, Ph.D.

Handles

Grafická aplikace - načtení dat a filtrace

Vytvořte jednoduchou aplikaci, která načte CSV soubor s daty (Year, Wage), zobrazí data a provede filtraci hodnot podle zadaného parametru.
Aplikace musí při stisknutí tlačíta zobrazit dialog pro výběr CSV souboru. Po jeho načtení se zobrazí křivka vývoje průměrné mzdy za rok. Při změně parametru poloměru fitrace se data přepočítají a zobrazí se filtrovaná křivka.
1. Vhodně rozvrhněte grafické rozhraní. Použijte Axes, Button, Edit Filed (Numeric). Popište vhodným způsobem osy, nastavte mřížku na pozadí, nazvěte tlačítko i vstupní okno pro poloměr filtrace.
2. V Code View připravte privátní proměnné, do kterých načtete data (Year - rok, Wage - průměrná mzda, Window - poloměr filtrace, PlotHandle - handle na plot, který bude vytvořen při načtení dat).
3. Vytvořte privátní metodu filterData, která bude spouštět uživatelem vytvořenou funkci filter_data, jestliže bude hodnota app.Window > 0. Metoda musí vracet vyfiltrovaná data.
4. Vytvořte callback pro Button. Zobrazte dialog výběru cesty k souboru (uigetfile). Pokud je cesta zadána, načtěte data z CSV souboru (dlmread, csvread). Načtěte data do proměnných app.Year, app.Wage. Zobrazte graf a uložte handle na plot, app.PlotHandle = plot( app.UIAxes, app.Year, app.Wage). V rámci funkce ještě spusťe filtraci dat metodou filterData a zobrazte výsledek do grafu, app.PlotHande.YData = filterData( app ).
5. Vytvořte callback pro Edit Line (Numeric). Jestliže nejsou prázné proměnné app.Year a app.Wage (tj. jsou načtena nějaká data), spustí se filtrace pomocí metody filterData a obnoví se graf, app.PlotHandle.YData = filterData( app ).