Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> MATLAB

MATLAB: Multidimensionale en Speciale Arrays Beheersen

In MATLAB zijn alle variabelen van alle gegevenstypen multidimensionale arrays. Een vector is een eendimensionaal array en een matrix is een tweedimensionaal array.

We hebben al vectors en matrices besproken. In dit hoofdstuk bespreken we multidimensionale arrays, maar eerst bekijken we enkele speciale typen arrays.

Speciale Arrays in MATLAB

In deze sectie bespreken we functies die speciale arrays aanmaken. Voor al deze functies creëert een enkel argument een vierkant array, terwijl twee argumenten een rechthoekig array produceren.

De zeros() functie

De zeros() functie creëert een array gevuld met nullen:

zeros(5)

MATLAB geeft het volgende resultaat terug:

ans =
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0
     0     0     0     0     0

De ones() functie

De ones() functie creëert een array gevuld met enen:

ones(4,3)

MATLAB geeft het volgende resultaat terug:

ans =
     1     1     1
     1     1     1
     1     1     1
     1     1     1

De eye() functie

De eye() functie creëert een identiteitsmatrix:

eye(4)

MATLAB geeft het volgende resultaat terug:

ans =
     1     0     0     0
     0     1     0     0
     0     0     1     0
     0     0     0     1

De rand() functie

De rand() functie creëert een array met uniform verdeelde willekeurige getallen op het interval (0,1):

rand(3, 5)

MATLAB geeft een resultaat terug zoals:

ans =
    0.8147    0.9134    0.2785    0.9649    0.9572
    0.9058    0.6324    0.5469    0.1576    0.4854
    0.1270    0.0975    0.9575    0.9706    0.8003

Een Magisch Vierkant

Een magisch vierkant is een vierkante matrix waarbij de som van de elementen in elke rij, kolom en diagonaal gelijk is.

De magic() functie creëert een magisch vierkant. Het neemt een enkel argument dat de grootte van het vierkant aangeeft. Het argument moet een scalar zijn van minstens 3.

magic(4)

MATLAB geeft het volgende resultaat terug:

ans =
    16     2     3    13
     5    11    10     8
     9     7     6    12
     4    14    15     1

Multidimensionale Arrays

Een array met meer dan twee dimensies wordt in MATLAB een multidimensionaal array genoemd. Dit is een uitbreiding van de standaard tweedimensionale matrix.

Om een multidimensionaal array te maken, creëert men meestal eerst een tweedimensionaal array en breidt deze uit.

Voorbeeld: Een derde dimensie toevoegen

Laten we eerst een tweedimensionaal array a maken:

a = [7 9 5; 6 1 9; 4 3 2]

Dit geeft een 3x3 matrix. We voegen een derde dimensie toe door waarden toe te wijzen aan de derde pagina:

a(:, :, 2) = [1 2 3; 4 5 6; 7 8 9]

MATLAB toont nu beide pagina's:

a(:,:,1) =
     7     9     5
     6     1     9
     4     3     2

a(:,:,2) =
     1     2     3
     4     5     6
     7     8     9

Multidimensionale arrays kunnen ook gemaakt worden met ones(), zeros() of rand() door extra dimensies op te geven:

b = rand(4,3,2)

De cat() functie

De cat() functie concateneert arrays langs een gespecificeerde dimensie:

B = cat(dim, A1, A2, ...)
  • B is het nieuwe geconcateneerde array
  • A1, A2, ... zijn de arrays die geconcateneerd worden
  • dim is de dimensie langs welke geconcateneerd wordt

Voorbeeld van cat()

a = [9 8 7; 6 5 4; 3 2 1];
b = [1 2 3; 4 5 6; 7 8 9];
c = cat(3, a, b, [2 3 1; 4 7 8; 3 9 0])

Resultaat:

c(:,:,1) =
     9     8     7
     6     5     4
     3     2     1

c(:,:,2) =
     1     2     3
     4     5     6
     7     8     9

c(:,:,3) =
     2     3     1
     4     7     8
     3     9     0

Array Functies

MATLAB biedt diverse functies voor het manipuleren van arrays: sorteren, roteren, permuteren, reshapen, shiften, etc.

FunctieDoel
lengthLengte van vector of grootste array dimensie
ndimsAantal array dimensies
numelAantal array elementen
sizeArray dimensies
iscolumnControleert of invoer kolomvector is
isemptyControleert of array leeg is
ismatrixControleert of invoer matrix is
isrowControleert of invoer rijvector is
isscalarControleert of invoer scalar is
isvectorControleert of invoer vector is
blkdiagConstrueert blok-diagonale matrix
circshiftCirculair verschuiven van array
ctransposeComplex geconjugeerde transpositie
diagDiagonale matrices en diagonalen
flipdimArray omkeren langs dimensie
fliplrMatrix links-rechts omkeren
flipudMatrix boven-onder omkeren
ipermuteInverse permutatie van N-D array
permuteDimensies van N-D array herrangschikken
repmatArray repliceren en tegelen
reshapeArray reshapen
rot90Matrix 90 graden roteren
shiftdimDimensies verschuiven
issortedControleert of elementen gesorteerd zijn
sortArray elementen sorteren
sortrowsRijen sorteren
squeezeSingleton dimensies verwijderen
transposeTranspositie
vectorizeExpressie vectoriseren

Voorbeelden

Lengte, Dimensies en Aantal Elementen

x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x)  % lengte van vector x
y = rand(3, 4, 5, 2);
ndims(y)   % aantal dimensies in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s)   % aantal elementen in s

Resultaat:

ans = 8
ans = 4
ans = 23

Circulair Verschuiven van Array Elementen

a = [1 2 3; 4 5 6; 7 8 9];
b = circshift(a,1);        % eerste dimensie 1 naar beneden verschuiven
c = circshift(a,[1 -1]);   % eerste dimensie 1 naar beneden, tweede 1 naar links

Resultaat:

a =
     1     2     3
     4     5     6
     7     8     9

b =
     7     8     9
     1     2     3
     4     5     6

c =
     8     9     7
     2     3     1
     5     6     4

Arrays Sorteren

v = [23 45 12 9 5 0 19 17];
sort(v)                    % vector sorteren
m = [2 6 4; 5 3 9; 2 0 1];
sort(m, 1)                 % sorteren langs rijen (kolomgewijs)
sort(m, 2)                 % sorteren langs kolommen (rijgewijs)

Resultaat:

v = 23 45 12 9 5 0 19 17
ans = 0 5 9 12 17 19 23 45
m = 2 6 4 5 3 9 2 0 1
ans = 2 0 1 2 3 4 5 6 9
ans = 2 4 6 3 5 9 0 1 2

Cel Arrays

Cel arrays zijn arrays van geïndexeerde cellen waarbij elke cel een array van verschillende dimensies en datatypes kan bevatten.

De cell functie creëert een cel array:

C = cell(dim)
C = cell(dim1,...,dimN)
D = cell(obj)

Voorbeeld

c = cell(2, 5);
c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5}

Resultaat:

c = 
  2×5 cell array
    {'Red'   }    {'Blue' }    {'Green' }    {'Yellow'}    {'White'}
    {[  1]}    {[  2]}    {[  3]}    {[  4]}    {[  5]}

Data Benaderen in Cel Arrays

Er zijn twee manieren om elementen in een cel array te benaderen:

  • Haakjes () voor sets van cellen
  • Accolades {} voor de data binnen individuele cellen

Voorbeeld met haakjes (set van cellen)

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c(1:2,1:2)

Resultaat:

ans = 
  2×2 cell array
    {'Red' }    {'Blue'}
    {[  1]}    {[  2]}

Voorbeeld met accolades (inhoud van cellen)

c = {'Red', 'Blue', 'Green', 'Yellow', 'White'; 1 2 3 4 5};
c{1, 2:4}

Resultaat:

ans = 'Blue'
ans = 'Green'
ans = 'Yellow'

MATLAB

  1. C# Arrays: Declaratie, Initialisatie en Operaties
  2. C# Jagged Arrays: Declaratie, Initialisatie en Toegang
  3. C++ Arrays Ontmaskerd: Declaratie, Initialisatie en Pointer‑Technieken
  4. C++ Dynamische Array‑Allocatie: Praktische Handleiding met Code‑Voorbeelden
  5. MATLAB: Uitgebreid Overzicht van een Leidende Numerieke Rekenomgeving
  6. Variabelen in MATLAB Begrijpen: Basis en Voorbeelden
  7. Essentiële MATLAB Commando's voor Efficiënte Berekening
  8. MATLAB Matrix Basis: Data Aanmaken, Benaderen en Manipuleren
  9. MATLAB Getallen: Typen, Opslag en Conversie
  10. MATLAB Strings: Maken, Manipuleren en Functies
  11. Java array-kopieertechnieken: een uitgebreide gids