MATLAB, een introductie van vijf minuten

MATLAB, veel studenten krijgen er vroeg of laat mee te maken. Niet geheel onterecht, want MATLAB is bij veel onderzoeksinstellingen en bedrijven de industriestandaard geworden. Helaas hebben veel studenten een hekel aan MATLAB gekregen. Slechte documentatie van hun opleiding of lastige opgaven helpen niet mee dit toch erg handige programma te waarderen. Dit artikel helpt je al na vijf minuten eenvoudige scripts te maken!

Voorbereiding

Zet eerst het doel dat je wilt bereiken met MATLAB (een opdracht voor je opleiding bijvoorbeeld) even opzij. Start MATLAB op. Het
  • venster bestaat standaard uit een aantal onderdelen, hiervan zijn de volgende twee belangrijk:
  • Command Window, hiermee kun je commando's typen en uitvoeren
  • Workspace, hier zie je alle data die je hebt gedefinieerd

Dat is voor nu even genoeg, op naar de eerste commando's!

Een matrix definiëren

MATLAB staat voor 'MATrix LABoratory'. Het is dan ook handig bij het gebruik van MATLAB continu aan 1D- of 2D- of nog-meer-D-matrices te denken. Als je bijvoorbeeld een lijst met leeftijden hebt van een groep mensen: zie het als een 1D-matrix met een rij vol met getallen. Als je een zwart/wit-foto hebt, zie het als een 2D-matrix met enen en nullen.

Type de volgende code in het 'Command Window' en druk op <ENTER>:
  • leeftijden = [24 25 26 22 24 31];

Je ziet in de 'Workspace' dat er een matrix 'leeftijden' is aangemaakt en je ziet de waardes. Dubbelklikken op de matrix opent de 'Variable Editor' met de waardes zoals we die hebben gedefinieerd. Stel dat we een vergissing hebben gemaakt bij het invoeren, alle leeftijden moeten met één jaar worden verhoogd. Dit kan eenvoudig worden gedaan met de volgende code:
  • leeftijden = leeftijden + 1

De eerste stap is gezet: je hebt een 1D-matrix gemaakt en er een operatie op losgelaten. Nu is het tijd een script te maken!

Een eerste script

Alle code die je kunt invoeren in het 'Command Window' kan ook in een script worden opgenomen. Een script is niets meer dan een lijstje met commando's die achter elkaar worden uitgevoerd. Een nieuw script kan eenvoudig worden aangemaakt met de toetscombinatie <CTRL-N>. Laten we een klaslokaal modelleren met kinderen met verschillende leeftijden. Het lokaal zien we als een matrix van tafeltjes en ieder element bevat een getal dat de leeftijd van het kind voorstelt. Dit gaat als volgt:
  • leeftijden = [ 8 7 9 7; 5 4 5 6; 5 8 3 7 ]

Je ziet dat de iedere rij in de matrix wordt afgesloten met een puntkomma en dat het hele commando ook wordt afgesloten met een puntkomma. Als je deze code hebt overgenomen in je script en daarna uitvoert door te klikken op de groene pijl kun je deze nieuwe 2D-matrix uitlezen in de 'Variable Editor'.

Stel dat we alle kinderen met een leeftijd van 6 jaar of jonger vrij geven. Op die plek zetten we dan een 0 neer. Programmeurs zouden direct naar een zogenaamde for-loop grijpen. Dat kan in MATLAB ook, maar het is sneller en overzichtelijker om dat als volgt te doen:
  • leeftijden(leeftijden < 7) = 0;

Als we de leeftijd willen veranderen van het kind in kolom 1 op rij 2 naar 15, dan voeren we het volgende uit:
  • leeftijden(3,2) = 15;

We weten nu ongeveer hoe we de elementen in de matrix kunnen aanpassen. Het is nu tijd om wat meer te leren over matrixoperaties en elementoperaties.

Matrixoperaties

Soms komt het voor dat er door een aardbeving het lokaal een kwartslag wordt gedraaid. We willen dan de 'transposed' versie van onze leeftijden matrix zien. Dit gaat heel eenvoudig door een apostrof toe te voegen:
  • leeftijden = leeftijden';

Nu gebeurt er iets vervelends, alle kinderen van de eerste kolom (dit was dus vroeger de eerste rij) zijn ziek geworden. De directeur van de school heeft een matrix opgesteld waarmee de waarden uit de eerste kolom op 0 kunnen worden gezet:
  • gezond = [ 0 0 0 0; 1 1 1 1; 1 1 1 1 ]';

Ieder element uit de 'leeftijden'-matrix moet worden vermenigvuldigd met het corresponderende element in de 'gezond'-matrix. Matrixvermenigvuldigingen kan men doen met het '*'-teken. Als een dergelijke operatie moet worden uitgevoerd per element moet er een punt voor worden gezet. Dit resulteert in de volgende code:
  • leeftijden = gezond.*leeftijden;

Nu hebben we alleen nog gebruik gemaakt van een zelf opgestelde matrix. De computer kunnen we ook matrices laten genereren.

Matrices maken

Tenslotte zijn hier nog een aantal tips voor het snel maken van matrices. Een 4 bij 3 matrix gevuld met nullen, bijvoorbeeld, maak je eenvoudig als volgt:

  • M = zeros(4,3);

Of een 200 bij 300 matrix vol met vieren is ook geen probleem:

  • V = 4*ones(200,300);

Een oplopende rij getallen van 0 t/m 5 maak je op deze manier:

  • N = 0:1:5;

En stel dat je twee matrices 'A' en 'B' aan elkaar wilt knopen in een nieuwe matrix 'C', dan doe je dat zo:

  • C = [A B];

Dit zijn de belangrijkste zaken die je in MATLAB kunt doen. Natuurlijk zul je heel veel nieuwe commando's zien en gebruiken als je met MATLAB bezig bent, maar de basis schuilt in bovenstaande operaties.

En nu?

Reduceer je problemen tot getallen, vul ze in MATLAB, laat de juiste operaties los en controleer het resultaat. De uitleg van alle operaties kun je vinden op de MATLAB website. Ook zijn er veel mensen die in hetzelfde schuitje zitten als jou, leer van hen en lees hun code. En vergeet niet: MATLAB is gereedschap, net zoals een hamer.; mensen hebben toch ook geen hekel aan hamers?

Voorbeeldscript

% de leeftijden uit de klas
leeftijden = [ 8 7 9 7; 5 4 5 6; 5 8 3 7 ];

% alle kinderen van 6 jaar of jonger hebben vrij
leeftijden(leeftijden < 7) = 0;

% één kind op rij 3, kolom 2 is 15 jaar oud
leeftijden(3,2) = 15;

% door een aardbeving is de klas een kwartslag gedraaid
leeftijden = leeftijden';

% sommige kinderen zijn ziek vandaag
gezond = [ 0 0 0 0; 1 1 1 1; 1 1 1 1 ]';

% vermenigvuldig ieder element van de ene matrix met het corresponderende element uit de andere matrix
leeftijden = leeftijden.*gezond;
© 2013 - 2024 Irda-en, het auteursrecht van dit artikel ligt bij de infoteur. Zonder toestemming is vermenigvuldiging verboden. Per 2021 gaat InfoNu verder als archief, artikelen worden nog maar beperkt geactualiseerd.
Gerelateerde artikelen
Blender 3D, Waar te beginnen?Blender 3D, Waar te beginnen?Blender 3D is een fascinerend programma om 3D tekeningen en animaties te maken. Maar hoe te beginnen met Blender 3D? Er…
Managementtool: Boston Cunsulting Group Matrix (BCG-Matrix)Managementtool: Boston Cunsulting Group Matrix (BCG-Matrix)De BCG-Matrix is een managementmodel, ontworpen door de Boston Cunsulting Group in 1970. Het is ook bekend als de 'Bosto…
Hoe te zoeken in een matrix in Excel?Hoe te zoeken in een matrix in Excel?Excel kent veel mogelijkheden om te zoeken in tabellen, echter het zoeken in een matrix is (voor zover ik kan nagaan) ni…
De Boston Portfolio (BCG) MatrixDe Boston Portfolio (BCG) MatrixDe Boston Portfolio Matrix wordt veel gebruikt in de marketing. Hij is dan ook simpel te gebruiken, tevens geeft het een…

Schrijven: van kladversie naar definitieve versieSchrijven: van kladversie naar definitieve versieAls een tekst af is, ben je vaak nog niet eens op de helft van het schrijfproces. Na het schrijven begint het herschrijv…
Carol Dweck; Intelligentie is geen vaststaand gegevenCarol Dweck; Intelligentie is geen vaststaand gegeven‘Intelligentie is geen vaststaand gegeven,’ zegt Carol Dweck (Amerikaanse psychologe en Stanfordonderzoeker) na jarenlan…
Irda-en (11 artikelen)
Gepubliceerd: 08-11-2013
Rubriek: Educatie en School
Subrubriek: Studievaardigheden
Per 2021 gaat InfoNu verder als archief. Het grote aanbod van artikelen blijft beschikbaar maar er worden geen nieuwe artikelen meer gepubliceerd en nog maar beperkt geactualiseerd, daardoor kunnen artikelen op bepaalde punten verouderd zijn. Reacties plaatsen bij artikelen is niet meer mogelijk.