Tradycyjnie na jesieni każdego roku otrzymujemy edycję „b” MATLABa, Nie inaczej jest teraz. Zobaczmy zatem jakie nowości oferuje nam MathWorks i co można zrobić z wykorzystaniem gotowych aplikacji, tzw. MATLAB Apps.
MATLAB i Simulink 2022b
Z najnowszym MATLABem otrzymujemy dwa nowe produkty: Medical Imaging Toolbox oraz Simscape Battery.
Pierwszy z nich to toolbox, którego narzędzia służą do szeroko rozumianej analizy obrazów biomedycznych. Od wielu lat jest to dynamicznie rozwijająca się dziedzina nauki, wspomagająca pracę lekarzy. Dobrze, że w końcu MATLAB będzie oferował zestaw gotowych narzędzi do analizy obrazów np.: tomografii komputerowej czy rezonansu magnetycznego.
Również drugi nowy produkt środowiska MATLAB i Simulik 2022b wychodzi naprzeciw potrzebom inżynierów. Simscape Battery to zestaw narzędzi umożliwiających projektowanie i analizę pracy baterii oraz magazynów energii. Jest to obecnie "gorący temat" ze względu na coraz większą popularność samochodów elektrycznych i domowych systemów fotowoltaicznych. Narzędzia nowego pakietu umożliwiają analizę nie tylko dynamiki ładowania czy rozładowywania baterii ale również badanie efektów starzenia czy właściwości termicznych.
Reszta nowości w wersji MATLAB i Simulink 2022b dotyczy aktualizacji i rozbudowy istniejących toolboxów. Kilka z nich to mocno specjalizowane funkcje (na przykład AUTOSAR), z których zwykły użytkownik MATLABa nigdy nie będzie korzystał. Jednak część aktualizacji dotyczy bardziej powszechnych funkcjonalności. Lista aktualizacji jest długa i jeśli Was ten temat interesuje zachęcam do samodzielnej eksploracji pod adresem: https://www.mathworks.com/help/matlab/release-notes.html
Aplikacje z interfejsem użytkownika - MATLAB Apps
Od jakiegoś czasu można zauważyć trend w MATLABie polegający na tworzeniu przez inżynierów MathWorks’a interfejsów użytkownika dla poszczególnych funkcji. Tak jest np. w Live Script’ach – interaktywnych „formularzach”, gdzie zamiast kodu, do budowania programu można wykorzystywać slidery, kontrolki, checkboxy, itd. Bardziej złożone operacje, składające się z kilku funkcji są łączone w „zadania” (task). I tak na przykład zamiast programować filtrację dolnoprzepustową sygnału, możemy skorzystać z zadania „Smooth data”, z własnym interfejsem użytkownika:
Jeszcze bardziej złożone zestawy funkcji, realizujące rozbudowane zadania numeryczne są łączone w tak zwane aplikacje (MATLAB Apps). Programy te również posiadają interfejs użytkownika, a więc niejako, zastępują konieczność programowania. MATLAB oferuje szereg aplikacji przyporządkowanych tematycznie do różnych toolboxów: od machine learning przez statistics, automotive po signal processing.
Powyżej aplikacja Curve Fitter, do aproksymacji danych pomiarowych.
Aplikacje to ułatwienie czy zmora życia programisty?
W pewnych przypadkach, jak Curve Fitter, aplikacje ułatwiają nasze życie. Inny przykład to Import Wizard - kiedy importujemy dane do MATLABa, nie zwracamy nawet uwagi, na te aplikację działającą w tle.
Jednak czy korzystanie z aplikacji, czyli zamkniętych, przygotowanych przez innych programistów programów jest zawsze dobre i bezpieczne? Aplikacje z założenia mają upraszczać i skracać czas potrzebny na osiągnięcie danego celu. Często jednak odbywa się kosztem utraty kontroli nad danym procesem. Wynika to z faktu, że aplikacje z interfejsem użytkownika, pozwalają jedynie na realizacje z góry zdefiniowanych zadań – bez elastyczności i parametryzacji kodu, tak jak można to robić kiedy samodzielnie pisze się program.
Pisanie klasycznych skryptów daje nam 100% kontroli nad treścią programu. Ponadto takie podejście niejako „wymusza” na programiście poznanie i zrozumienie działania poszczególnych funkcji, a tym samym zrozumienie stojącej za tymi funkcjami algebry, statystyki, podstaw przetwarzania sygnałów, itd.
Z kolei mając do dyspozycji gotową aplikację z interfejsem użytkownika i wynikiem podanym „na tacy”, nasze działanie zaczyna mieć charakter odtwórczy i bezrefleksyjny. Wprowadzamy dane -> dostajemy wynik i rzadko zastanawiamy się nad jego poprawnością.
Podsumowując nie jestem przeciwnikiem używania gotowych aplikacji w MATLABie. Jednak, jak z każdego narzędzia należy z nich korzystać świadomie, czytać dokumentację, a otrzymane wyniki poddawać weryfikacji. Gdyż często się okazuje, że aplikacja jednak wcale „nie wie lepiej” – lepiej samemu napisać program.