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 - Arrays

Alle variabelen van alle gegevenstypen in MATLAB zijn multidimensionale arrays. Een vector is een eendimensionale array en een matrix is ​​een tweedimensionale array.

We hebben vectoren en matrices al besproken. In dit hoofdstuk zullen we multidimensionale arrays bespreken. Laten we echter eerst enkele speciale typen arrays bespreken.

Speciale arrays in MATLAB

In deze sectie zullen we enkele functies bespreken die een aantal speciale arrays creëren. Voor al deze functies creëert een enkel argument een vierkante array, dubbele argumenten een rechthoekige array.

De nullen() functie maakt een array van allemaal nullen −

Bijvoorbeeld −

Live demo
zeros(5)

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

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 en() functie maakt een array van allemaal enen −

Bijvoorbeeld −

Live demo
ones(4,3)

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

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

Het oog() functie creëert een identiteitsmatrix.

Bijvoorbeeld −

Live demo
eye(4)

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

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

De rand() functie creëert een array van uniform verdeelde willekeurige getallen op (0,1) −

Bijvoorbeeld −

Live demo
rand(3, 5)

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

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 vierkant dat dezelfde som produceert, wanneer de elementen rijsgewijs, kolomgewijs of diagonaal worden toegevoegd.

De magie() functie creëert een magisch vierkant array. Er is een enkelvoudig argument voor nodig dat de grootte van het vierkant geeft. Het argument moet een scalair groter dan of gelijk aan 3 zijn.

Live demo
magic(4)

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

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 multidimensionale array genoemd. Multidimensionale arrays in MATLAB zijn een uitbreiding van de normale tweedimensionale matrix.

Om een ​​multidimensionale array te genereren, maken we over het algemeen eerst een tweedimensionale array en breiden deze uit.

Laten we bijvoorbeeld een tweedimensionale array a maken.

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

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

a =
   7     9     5
   6     1     9
   4     3     2

De array a is een 3-bij-3-array; we kunnen een derde dimensie toevoegen aan a , door waarden zoals −

. op te geven Live demo
a(:, :, 2)= [ 1 2 3; 4 5 6; 7 8 9]

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

a =

ans(:,:,1) =

   0   0   0
   0   0   0
   0   0   0

ans(:,:,2) =

   1   2   3
   4   5   6
   7   8   9

We kunnen ook multidimensionale arrays maken met de functies enen(), nullen() of rand().

Bijvoorbeeld,

Live demo
b = rand(4,3,2)

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

b(:,:,1) =
   0.0344    0.7952    0.6463
   0.4387    0.1869    0.7094
   0.3816    0.4898    0.7547
   0.7655    0.4456    0.2760

b(:,:,2) =
   0.6797    0.4984    0.2238
   0.6551    0.9597    0.7513
   0.1626    0.3404    0.2551
   0.1190    0.5853    0.5060

We kunnen ook de cat() . gebruiken functie om multidimensionale arrays te bouwen. Het voegt een lijst met arrays samen langs een gespecificeerde dimensie −

Syntaxis voor de functie cat() is −

B = cat(dim, A1, A2...)

Waar,

  • B is de nieuwe array gemaakt

  • A1 , A2 , ... zijn de aaneengeschakelde arrays

  • dim is de dimensie waarlangs de arrays moeten worden samengevoegd

Voorbeeld

Maak een scriptbestand en typ de volgende code erin −

Live demo
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])

Wanneer u het bestand uitvoert, wordt −

. weergegeven
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 de volgende functies om array-inhoud te sorteren, roteren, permuteren, hervormen of verschuiven.

Functie Doel
lengte Lengte van vector of grootste matrixdimensie
ndims Aantal matrixafmetingen
cijfer Aantal array-elementen
grootte Array-afmetingen
iscolumn Bepaalt of invoer een kolomvector is
isleeg Bepaalt of array leeg is
ismatrix Bepaalt of invoer matrix is
isrow Bepaalt of invoer rijvector is
isscalar Bepaalt of invoer scalair is
isvector Bepaalt of invoer vector is
blkdiag Construeert blokdiagonaalmatrix van invoerargumenten
circshift Verschuift array circulair
ctranspose Complex geconjugeerd transponeren
diag Diagonale matrices en diagonalen van matrix
flipdim Draait array om langs gespecificeerde afmeting
fliplr Draait matrix van links naar rechts
flipud Draait matrix omhoog naar beneden
ipermute Keert permute-dimensies van N-D-array om
permuteren Hordent de afmetingen van de N-D-array
repmat Repliceert en tegelarray
hervorm Vormt array opnieuw
rot90 Draait matrix 90 graden
shiftdim Dimensies verschuiven
gesorteerd Bepaalt of set-elementen in gesorteerde volgorde staan
sorteer Sort array-elementen in oplopende of aflopende volgorde
sortrows Rijen in oplopende volgorde sorteren
knijpen Verwijdert singleton-dimensies
transponeren Transponeren
vectoriseren Vectoriseert expressie

Voorbeelden

De volgende voorbeelden illustreren enkele van de hierboven genoemde functies.

Lengte, afmeting en aantal elementen −

Maak een scriptbestand en typ de volgende code erin −

Live demo
x = [7.1, 3.4, 7.2, 28/4, 3.6, 17, 9.4, 8.9];
length(x)      % length of x vector
y = rand(3, 4, 5, 2);
ndims(y)       % no of dimensions in array y
s = ['Zara', 'Nuha', 'Shamim', 'Riz', 'Shadab'];
numel(s)       % no of elements in s

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

ans =  8
ans =  4
ans =  23

Circulaire verschuiving van de array-elementen −

Maak een scriptbestand en typ de volgende code erin −

Live demo
a = [1 2 3; 4 5 6; 7 8 9]  % the original array a
b = circshift(a,1)         %  circular shift first dimension values down by 1.
c = circshift(a,[1 -1])    % circular shift first dimension values % down by 1 
                           % and second dimension values to the left % by 1.

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

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

Maak een scriptbestand en typ de volgende code erin −

Live demo
v = [ 23 45 12 9 5 0 19 17]  % horizontal vector
sort(v)                      % sorting v
m = [2 6 4; 5 3 9; 2 0 1]    % two dimensional array
sort(m, 1)                   % sorting m along the row
sort(m, 2)                   % sorting m along the column

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

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

Celmatrix

Celarrays zijn arrays van geïndexeerde cellen waarin elke cel een array met verschillende dimensies en gegevenstypen kan opslaan.

De cel functie wordt gebruikt voor het maken van een celarray. Syntaxis voor de celfunctie is −

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

Waar,

  • C is de celarray;

  • dim is een scalair geheel getal of vector van gehele getallen die de afmetingen van celarray C specificeert;

  • dim1, ... , dimN zijn scalaire gehele getallen die de afmetingen van C specificeren;

  • obj is een van de volgende −

    • Java-array of -object
    • .NET-array van het type System.String of System.Object

Voorbeeld

Maak een scriptbestand en typ de volgende code erin −

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

Wanneer u het bestand uitvoert, wordt het volgende resultaat weergegeven −

c = 
{
   [1,1] = Red
   [2,1] =  1
   [1,2] = Blue
   [2,2] =  2
   [1,3] = Green
   [2,3] =  3
   [1,4] = Yellow
   [2,4] =  4
   [1,5] = White
   [2,5] =  5
}

Toegang tot gegevens in celarrays

Er zijn twee manieren om naar de elementen van een celarray te verwijzen −

  • De indices tussen het eerste haakje (), om te verwijzen naar reeksen cellen
  • De indices tussen accolades {} om te verwijzen naar de gegevens in afzonderlijke cellen

Wanneer u de indexen tussen de eerste haakjes plaatst, verwijst dit naar de reeks cellen.

Celarray-indices tussen gladde haakjes verwijzen naar sets cellen.

Bijvoorbeeld −

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

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

ans = 
{
   [1,1] = Red
   [2,1] =  1
   [1,2] = Blue
   [2,2] =  2
}

U kunt ook toegang krijgen tot de inhoud van cellen door te indexeren met accolades.

Bijvoorbeeld −

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

MATLAB zal de bovenstaande instructie uitvoeren en het volgende resultaat retourneren −

ans = Blue
ans = Green
ans = Yellow

MATLAB

  1. C#-matrices
  2. C# Jagged Array
  3. Java-kopieerarrays
  4. Arrays in C++ | Verklaren | Initialiseren | Aanwijzer naar matrixvoorbeelden
  5. C++ Dynamische toewijzing van arrays met voorbeeld
  6. MATLAB - Overzicht
  7. MATLAB - Variabelen
  8. MATLAB - Opdrachten
  9. MATLAB - Matrix
  10. MATLAB - Cijfers
  11. MATLAB - Snaren