MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
Een operator is een symbool dat de compiler vertelt om specifieke wiskundige of logische manipulaties uit te voeren. MATLAB is ontworpen om primair te opereren op gehele matrices en arrays. Daarom werken operatoren in MATLAB zowel op scalaire als niet-scalaire data. MATLAB stelt de volgende typen elementaire operaties toe:
- Rekenkundige Operatoren
- Relationele Operatoren
- Logische Operatoren
- Bitwise Operaties
- Set Operaties
Rekenkundige Operatoren
MATLAB stelt twee verschillende typen rekenkundige operaties toe:
- Matrix rekenkundige operaties
- Array rekenkundige operaties
Matrix rekenkundige operaties zijn hetzelfde als gedefinieerd in lineaire algebra. Array-operaties worden element voor element uitgevoerd, zowel op eendimensionale als multidimensionale arrays.
De matrix-operatoren en array-operatoren worden gedifferentieerd door het punt (.) symbool. Echter, aangezien de optel- en aftrekoperatie hetzelfde is voor matrices en arrays, is de operator hetzelfde voor beide gevallen. De volgende tabel geeft een korte beschrijving van de operatoren:
Voorbeelden Tonen
| Nr. | Operator & Beschrijving |
|---|---|
| 1 | + Optelling of unaire plus. A+B telt de waarden op die opgeslagen zijn in variabelen A en B. A en B moeten dezelfde grootte hebben, tenzij er een scalaire is. Een scalaire kan aan een matrix van elke grootte worden toegevoegd. |
| 2 | - Aftrekking of unaire min. A-B trekt de waarde van B van A af. A en B moeten dezelfde grootte hebben, tenzij er een scalaire is. Een scalaire kan van een matrix van elke grootte worden afgetrokken. |
| 3 | * Matrixvermenigvuldiging. C = A*B is het lineair-algebraïsche product van de matrices A en B. Preciezer:
Voor niet-scalaire A en B, moet het aantal kolommen van A gelijk zijn aan het aantal rijen van B. Een scalaire kan een matrix van elke grootte vermenigvuldigen. |
| 4 | .* Array-vermenigvuldiging. A.*B is het element-voor-element product van de arrays A en B. A en B moeten dezelfde grootte hebben, tenzij er een van de twee een scalaire is. |
| 5 | / Slash of matrix-rechtsdeling. B/A is ruwweg hetzelfde als B*inv(A). Preciezer: B/A = (A'\B')'. |
| 6 | ./ Array-rechtsdeling. A./B is de matrix met elementen A(i,j)/B(i,j). A en B moeten dezelfde grootte hebben, tenzij er een van de twee een scalaire is. |
| 7 | \ Backslash of matrix-linksdeling. Als A een vierkante matrix is, is A\B ruwweg hetzelfde als inv(A)*B, behalve dat het op een andere manier wordt berekend. Als A een n-op-n matrix is en B een kolomvector met n componenten, of een matrix met verschillende dergelijke kolommen, dan is X = A\B de oplossing voor de vergelijking AX = B. Een waarschuwingsbericht wordt getoond als A slecht geschaald is of bijna singulier. |
| 8 | .\ Array-linksdeling. A.\B is de matrix met elementen B(i,j)/A(i,j). A en B moeten dezelfde grootte hebben, tenzij er een van de twee een scalaire is. |
| 9 | ^ Matrixmacht. X^p is X tot de macht p, als p een scalaire is. Als p een integer is, wordt de macht berekend door herhaald kwadrateren. Als de integer negatief is, wordt X eerst geïnverteerd. Voor andere waarden van p, omvat de berekening eigenwaarden en eigenvectoren, zodanig dat als [V,D] = eig(X), dan X^p = V*D.^p/V. |
| 10 | .^ Arraymacht. A.^B is de matrix met elementen A(i,j) tot de macht B(i,j). A en B moeten dezelfde grootte hebben, tenzij er een van de twee een scalaire is. |
| 11 | ' Matrixtransponatie. A' is de lineair-algebraïsche transponatie van A. Voor complexe matrices is dit de geconjugeerde transponatie. |
| 12 | .' Arraytransponatie. A.' is de array-transponatie van A. Voor complexe matrices omvat dit geen conjugatie. |
Relationele Operatoren
Relationele operatoren kunnen ook werken op zowel scalaire als niet-scalaire data. Relationele operatoren voor arrays voeren element-voor-element vergelijkingen uit tussen twee arrays en retourneren een logische array van dezelfde grootte, met elementen ingesteld op logische 1 (true) waar de relatie true is en elementen ingesteld op logische 0 (false) waar dit niet het geval is.
De volgende tabel toont de relationele operatoren beschikbaar in MATLAB:
Voorbeelden Tonen
| Nr. | Operator & Beschrijving |
|---|---|
| 1 | < Kleiner dan |
| 2 | <= Kleiner dan of gelijk aan |
| 3 | > Groter dan |
| 4 | >= Groter dan of gelijk aan |
| 5 | == Gelijk aan |
| 6 | ~= Niet gelijk aan |
Logische Operatoren
MATLAB biedt twee typen logische operatoren en functies:
Element-gewijs − Deze operatoren opereren op overeenkomstige elementen van logische arrays.
Short-circuit − Deze operatoren opereren op scalaire en logische expressies.
Element-gewijze logische operatoren opereren element-voor-element op logische arrays. De symbolen &, |, en ~ zijn de logische array-operatoren EN, OF, en NIET.
Short-circuit logische operatoren staan short-circuiting toe op logische operaties. De symbolen && en || zijn de logische short-circuit operatoren EN en OF.
Voorbeelden Tonen
Bitwise Operaties
Bitwise operatoren werken op bits en voeren bit-voor-bit operaties uit. De waarheidstabellen voor &, |, en ^ zijn als volgt:
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Stel A = 60; en B = 13; Nu in binair formaat zullen ze als volgt zijn:
A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A|B = 0011 1101
A^B = 0011 0001
~A = 1100 0011
MATLAB biedt diverse functies voor bitwise operaties zoals 'bitwise and', 'bitwise or' en 'bitwise not' operaties, shift operaties, etc.
De volgende tabel toont de veelgebruikte bitwise operaties:
Voorbeelden Tonen
| Functie | Doel |
|---|---|
| bitand(a, b) | Bit-gewijs EN van integers a en b |
| bitcmp(a) | Bit-gewijs complement van a |
| bitget(a,pos) | Haal bit op op gespecificeerde positie pos, in de integer array a |
| bitor(a, b) | Bit-gewijs OF van integers a en b |
| bitset(a, pos) | Zet bit op specifieke locatie pos van a |
| bitshift(a, k) | Retourneert a verschoven naar links met k bits, equivalent aan vermenigvuldigen met 2k. Negatieve waarden van k corresponderen met bits naar rechts schuiven of delen door 2|k| en afronden naar het dichtstbijzijnde integer in negatieve oneindige richting. Overflow bits worden afgekapt. |
| bitxor(a, b) | Bit-gewijs XOR van integers a en b |
| swapbytes | Wissel byte-volgorde |
Set Operaties
MATLAB biedt diverse functies voor set-operaties, zoals unie, intersectie en testen op set-lidmaatschap, etc.
De volgende tabel toont enkele veelgebruikte set-operaties:
Voorbeelden Tonen
| Nr. | Functie & Beschrijving |
|---|---|
| 1 | intersect(A,B) Set-intersectie van twee arrays; retourneert de waarden gemeenschappelijk aan zowel A als B. De geretourneerde waarden zijn in gesorteerde volgorde. |
| 2 | intersect(A,B,'rows') Behandelt elke rij van A en elke rij van B als enkele entiteiten en retourneert de rijen gemeenschappelijk aan zowel A als B. De rijen van de geretourneerde matrix zijn in gesorteerde volgorde. |
| 3 | ismember(A,B) Retourneert een array van dezelfde grootte als A, bevattend 1 (true) waar de elementen van A in B gevonden worden. Elders retourneert het 0 (false). |
| 4 | ismember(A,B,'rows') Behandelt elke rij van A en elke rij van B als enkele entiteiten en retourneert een vector bevattend 1 (true) waar de rijen van matrix A ook rijen van B zijn. Elders retourneert het 0 (false). |
| 5 | issorted(A) Retourneert logische 1 (true) als de elementen van A in gesorteerde volgorde zijn en logische 0 (false) anders. Invoer A kan een vector zijn of een N-op-1 of 1-op-N cel-array van strings. A wordt beschouwd als gesorteerd als A en de output van sort(A) gelijk zijn. |
| 6 | issorted(A, 'rows') Retourneert logische 1 (true) als de rijen van tweedimensionale matrix A in gesorteerde volgorde zijn, en logische 0 (false) anders. Matrix A wordt beschouwd als gesorteerd als A en de output van sortrows(A) gelijk zijn. |
| 7 | setdiff(A,B) Sets-verschil van twee arrays; retourneert de waarden in A die niet in B zijn. De waarden in de geretourneerde array zijn in gesorteerde volgorde. |
| 8 | setdiff(A,B,'rows') Behandelt elke rij van A en elke rij van B als enkele entiteiten en retourneert de rijen uit A die niet in B zijn. De rijen van de geretourneerde matrix zijn in gesorteerde volgorde. De 'rows' optie ondersteunt geen cel-arrays. |
| 9 | setxor Sets-exclusieve OF van twee arrays |
| 10 | union Sets-unie van twee arrays |
| 11 | unique Unieke waarden in array |
MATLAB
- C# Operators – Uitgebreide gids voor operators in C#
- C++ operators: complete gids met praktische voorbeelden
- C Programmeeroperatoren Beheersen: Een Uitgebreide Gids
- C-operators: Types, functies en voorbeelden
- MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
- Variabelen in MATLAB Begrijpen: Basis en Voorbeelden
- Essentiële MATLAB Commando's voor Efficiënte Berekening
- MATLAB Datatypes: Uitgebreide Gids
- MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Java-operators beheersen: typen, syntax en praktische voorbeelden
