# MATLAB

MATLAB (oorspronkelijk MATrix LABoratory) is een technische softwareomgeving uitgegeven door The Mathworks en wordt gebruikt in zowel de industrie als de academische wereld voor wiskundige toepassingen, zoals het berekenen van functies, bewerken van matrices, statistiek, tekenen van grafieken, schrijven en implementeren van algoritmen en het maken van grafische gebruikersinterfaces. De basis van het programma is de programmeertaal ‘M-code’ of ‘M’. Deze wordt gebruikt voor het invoeren, bewerken en uitvoeren van gegevens.

## Geschiedenis

MATLAB werd in de jaren 70 ontwikkeld door Cleve Moler aan de Amerikaanse Universiteit van New Mexico als hulpmiddel voor zijn studenten. De eerste commerciële versie kwam er toen Moler Jack Little ontmoette en ze samen besloten het bedrijf The Mathworks op te richten in 1984 om de in C herschreven versie van MATLAB uit te geven.

## Werkomgeving

De MATLAB-omgeving is opgebouwd uit drie delen:
* Workspace of werkruimte
* Commandogeschiedenis
* Commandovenster of shell
De werkruimte toont alle huidige variabelen met hun eigenschappen zoals dimensies, maxima en minima. De commandogeschiedenis toont de laatst uitgevoerde commando’s met het tijdstip. Met het commandovenster worden commando’s ingevoerd en het resultaat weergegeven.

## Uitbreidingen en toolboxes

The Mathworks brengt ook verschillende toolboxes en uitbreidingen uit die MATLAB voorzien van extra functies en functionaliteit. Zo is er bijvoorbeeld de FDAtool die gebruikt wordt om digitale filters te ontwerpen en de image processing toolbox die gebruikt wordt voor het verwerken en bewerken van beelden. Elke toolbox voegt zijn eigen functies en Graphical User Interfaces (GUI) toe, die daarna op te roepen zijn in de standaard MATLAB-script files of via het menu.

## M-code
### Syntaxis

Het uitvoeren van MATLAB-code gebeurt via de commandoregel waardoor de omgeving erg op een shell lijkt. Verschillende opeenvolgende instructies kunnen worden opgeslagen in een tekstbestand en worden uitgevoerd als een script. In tegenstelling tot andere programmeertalen is het gebruik van de puntkomma (;) aan het einde van een regel niet verplicht in MATLAB. Wanneer de puntkomma toch geplaatst wordt onderdrukt deze de uitvoer van de regel in het commandovenster.

### Objectgeorienteerd programmeren

Sinds versie r2008a bevat MATLAB de mogelijkheid om objectgeoriënteerd (OO) te programmeren. Hierdoor kan men gebruikmaken van de OO-principes zoals overerving en encapsulatie. Zo wordt het schrijven van herbruikbare code vereenvoudigd.

### Voorbeelden
## MATLAB en Simulink

Bij MATLAB hoort ook een modelgebaseerde simulatieomgeving genaamd Simulink. Deze omgeving biedt gebruikers de kans om op een efficiënte manier systemen te simuleren en/of te implementeren. Men werkt opnieuw op basis van Toolboxes die elk gespecialiseerde blokken bevatten voor het uitbreiden van de functionaliteit. Zo bestaat er een Fixed-point toolbox die de gebruiker toelaat het model aan bepaalde precisieparameters te laten voldoen en het systeem vervolgens om te zetten naar een Hardware-Description Language (HDL) zoals VHDL of Verilog.

## MATLAB en C

Vanaf versie R2007b heeft MATLAB de mogelijkheid om C-code te genereren van M-bestanden door middel van de Real Time Workshop (tegenwoordig Matlab Coder). Deze ANSI/ISO C-bestanden kunnen vervolgens geïmplementeerd worden in hardware of worden ingevoegd als bouwstenen in Simulink door middel van het Embedded Matlab Block. Mede hierdoor heeft MATLAB veel aanhang verworven bij het ontwikkelen van algoritmen voor o.a. digitale filters, beeldherkenning, beeldverwerking, FFT, Discrete fouriertransformatie.

## Externe link

* (mul) Officële webpagina
* 1 2 MathWorks Announces Release 2024b of MATLAB and Simulink. Geraadpleegd op 15 september 2024.
* ↑ MATLAB News & Notes - December 2004 - Cleve's Corner - The Origins of MATLAB (gearchiveerd)
* ↑ Object Oriented Programming in MATLAB. Gearchiveerd op 5 december 2008. Geraadpleegd op 30 november 2008.
* ↑ Simulink - Simulation and Model-Based Design. Gearchiveerd op 4 december 2008. Geraadpleegd op 27 november 2008.
* ↑ MathWorks rolls MATLAB C generator | DSP DesignLine