Cechy środowiska MATLAB® & Simulink®

Bardzo wygodny, z punktu widzenia użytkownika, język wysokiego poziomu stosowany w MATLAB-ie, a także udostępnienie w nim niezawodnych implementacji algorytmów matematyki stosowanej, bogatych funkcji graficznych i licznych modułów rozszerzeń zorientowanych na określone dziedziny zastosowań (MATLAB Application Toolboxes , Simulink, Simulink Blocksets , MATLAB Coder, Simulink Coder, Stateflow i inne) sprawiły, że obecnie MATLAB w znacznym stopniu wyparł z obliczeń naukowo-technicznych języki uniwersalne (Fortran, C, C++) ograniczając ich zasadniczą rolę do funkcji oprogramowania narzędziowego.

Rozszerzalność, będąca podstawowym założeniem architektury MATLAB-a, umożliwiła niezwykle szybki rozwój tego środowiska. Stało się to zarówno dzięki działaniom jego producenta - The MathWorks, Inc., jak i ok. 200 firm współpracujących z nim w ramach MATLAB Connections Programme, w tym np. dSPACE GmbH, Agilent, Motorola, Texas Instruments, Xilinx, ABB Industrial Systems. Partnerzy The MathWorks dostarczają produkty oparte na MATLAB-ie lub interfejsy łączące MATLAB-a z ich własnymi produktami.

 

Architektura:

  • rozszerzalność (możliwość budowania własnych funkcji użytkownika: m-pliki, skryptowe i funkcyjne, dołączanie skompilowanego kodu w C lub w Fortranie: biblioteki DLL - MEX-pliki)
  • przenośność (jednakowy kod MATLAB-a - m-kod dla różnych platform PC: Windows, GNU/Linux i MacOSX)
  • wymiana danych z innymi aplikacjami poprzez pliki i różne protokoły komunikacyjne, ODBC/JDBC (bazy danych) - Database Toolbox
  • współpraca z innymi aplikacjami w środowisku wielozadaniowym (możliwość uruchamiania innych aplikacji z poziomu MATLABA - polecenia poprzedzane znakiem !, udostępnianie usług poprzez MATLAB Engine - zlecanie obliczeń i generowanie bibliotek - .NET, Java i makra Excel)

 

Język programowania wysokiego poziomu:

  • indeksacja niejawna pozwalająca na efektywną wektoryzację obliczeń i zwarty zapis (konstrukcje z użyciem dwukropka, nawiasów kwadratowych, połączenie kropki i operatorów arytmetycznych, indeksacja za pomocą warunków logicznych, wektoryzacja funkcji wbudowanych)
  • domyślne określanie typów i wymiarowanie tablic umożliwiające szybkie prototypowanie aplikacji w środowisku interpretera MATLAB-a
  • automatyczna generacja kodu C (MATLAB Compiler i biblioteki MATLAB C/C++ Math Libraries) wykorzystywana do budowania niezależnych aplikacji na bazie kodu MATLAB-owskiego
  • różnorodne typy zmiennych: numeryczne - stałoprzecinkowe i zmiennoprzecinkowe, tablice wielowymiarowe, zmienne tekstowe, zmienne strukturowe - dostęp do pola przez nazwę (notacja kropkowa), tablice wskaźnikowe - cell arrays (notacja klamrowa)

 

Obiektowość:

  • grafika uchwytów (hierarchiczna struktura Handle Graphics - pobieranie (get) i nadawanie (set) wartości atrybutów określanych zmiennymi tekstowymi)
  • obiekty standardowe (np. LTI - liniowy, stacjonarny system dynamiczny, obiekt sym - wyrażenie symboliczne)
  • narzędzia programowania obiektowego (hermetyzacja, dziedziczenie, przeciążanie)