Windows.  Virus.  Anteckningsböcker.  Internet.  kontor.  Verktyg.  Förare

Lektion nummer 13.

Flerdimensionella arrayer

    Konceptet med flerdimensionella arrayer

    Använda ":"-operatorn i flerdimensionella arrayer

    Åtkomst till ett enda element i en flerdimensionell array

    Ta bort en dimension i en flerdimensionell array

    Skapa sidor fyllda med konstanter och slumpmässiga siffror

    Union av arrayer

    Beräkna antalet dimensioner för en array och bestämma storleken på dimensionerna

    Permutationer av arraydimensioner

    Skift dimensioner av arrayer

    Ta bort enhetens mått

I den här lektionen kommer vi att beröra frågor relaterade till mer komplexa datatyper, som inkluderar flerdimensionella arrayer.

Konceptet med flerdimensionella arrayer

I MATLAB är en tvådimensionell array ett specialfall av en flerdimensionell array. Flerdimensionella arrayer kännetecknas av en dimension större än två. Sådana arrayer kan ges en visuell tolkning. Således kan en matris (tvådimensionell array) skrivas på ett pappersark i form av rader och kolumner som består av matriselement. Då kan en anteckningsbok med sådana ark betraktas som en tredimensionell array, en hylla i ett skåp med anteckningsböcker - en fyrdimensionell array, ett skåp med många hyllor - en femdimensionell array, etc. I den här boken, nästan ingenstans, förutom det här avsnittet kommer vi att ta itu med arrayer, dimensioner som är högre än två, men det är fortfarande användbart att veta om MATLABs möjligheter när det gäller att specificera och använda flerdimensionella arrayer.

I vår litteratur är begreppen "storlek" och "dimension" av arrayer nästan synonyma. De har dock tydligt olika betydelser i den här boken, såväl som i MATLAB:s dokumentation och litteratur. Under dimensionera arrayer förstås som antalet dimensioner i den rumsliga representationen av arrayer, och under storlek - antalet rader och kolumner (mxn) i varje dimension av arrayen.

Använda ":"-operatorn i flerdimensionella arrayer

När arrayer normalt anges (med semikolonsymbolen ";") är antalet rader (rader) i arrayen 1 fler än antalet ":"-tecken, men arrayen förblir tvådimensionell. Operatorn ":" (kolon) gör det enkelt att utföra operationer för att öka dimensionen på arrayer. Låt oss ge ett exempel på bildandet av en tredimensionell array genom att addera ny sida. Låt oss ha en initial tvådimensionell array M med storleken 3x3:

» M=

M =

1 2 3

4 5 6

7 8 9

För att lägga till en ny sida med samma storlek kan du expandera M enligt följande:

» M(:.:.2)=

M(:.:.l) =

1 2 3

4 5 6

7 8 9

M(:.:.2) =

10 11 12

13 14 15

16 17 18

Låt oss se vad arrayen M nu innehåller när den är explicit specificerad:

»M

M(:,:.1)=

1 2 3

4 5 6

7 8 9

M(:.:.2) =

10 11 12

13 14 15

16 17 18

Som du kan se betyder siffrorna i uttrycken M(:.:, 1) och M(:,:,2) sidnumret.

Åtkomst till ett enda element i en flerdimensionell array

För att anropa det centrala elementet först på den första och sedan på den andra sidan, måste du skriva följande uttryck:

» M(2,2,1)

ans=

» MS2.2.2)

ans=

I flerdimensionella arrayer används alltså samma indexeringsregel som i endimensionella och tvådimensionella arrayer. Godtyckligt element t.ex. ges en tredimensionell matris som M(1.j.k), där 1 är radnumret, j är kolumnnumret och k är sidnumret. Detta element kan visas, eller så kan du tilldela det ett givet värde x: M(1,j,k)=x.

Ta bort en dimension i en flerdimensionell array

Vi har redan noterat möjligheten att ta bort enskilda kolumner genom att tilldela dem värdena för en tom kolumnvektor. Denna teknik kan enkelt utökas till sidor och i allmänhet dimensionerna för en flerdimensionell array. Till exempel kan den första sidan i den resulterande arrayen M tas bort enligt följande:

» M(:.:.1)=

M =

10 11 12

13 14 15

16 17 18

Det är lätt att se att endast den andra sidan är kvar i denna array och att arraydimensionen har minskat med 1 - den har blivit tvådimensionell.

Skapa sidor fyllda med konstanter och slumpmässiga tal

Om det finns en numerisk konstant efter tilldelningstecknet, kommer motsvarande del av arrayen att innehålla element som innehåller denna konstant. Låt oss till exempel skapa en array från arrayen M (se exemplet ovan) vars andra sida innehåller ettor:

»M(:.:..2)=1

M(:.:,1) =

10 11 12

13 14 15

16 17 18

M(:.:.2) =

1 1 1

1 1 1

1 1 1

Låt oss nu ersätta den första sidan i arrayen med en sida med noll element:

»M(:.:.1)=0

M(:.:.1)=

0 0 0

0 0 0

0 0 0

M(:.:,2) =

1 1 1

1 1 1

1 1 1

Använda ettor, nollor, rand och randn funktioner

Funktionerna ettor (skapa arrayer med enstaka element), nollor (skapa arrayer med noll element) och rand eller randn (skapa arrayer med slumptal med likformig respektive normalfördelning) kan också användas för att skapa flerdimensionella arrayer. Exempel ges nedan:

»E=ettor(3.3.2)

E(:.:.1)=

1 1 1

1 1 1

1 1 1

E(:.:,2) =

1 1 1

1 1 1

1 1 1

» Z=nollor(2,2,3) Z(:,:.l) =

Z(:.:.2) =

Z(:.:,3) =

» R=randn(3,2.2) R(:.:.l) =

1.6656-1.1465

0.1253 1.1909

0.2877 1.1892

R(:.:,2) =

0.0376-0.1867

0.3273 0.7258

0.1746 -0.5883

Dessa exempel är ganska uppenbara och kräver inga speciella kommentarer. Var dock uppmärksam på hur lätt det är att ange storlekarna på arrayer för varje dimension. Dessutom bör det noteras att om minst en arraydimension är noll, kommer arrayen att vara tom:

» A=randn(3,3,3,0)

A =

Tom array: 3-by-3-by-3-by-0

Som sett från detta exempel, tom arrayåtersänds med lämplig kommentar.

Union av arrayer

För att skapa flerdimensionella arrayer, använd det tidigare beskrivna för matriser speciell funktion sammanfoga katt:

    cat(DIM,A,B) - returnerar resultatet av att kombinera två arrayer A och B längs DIM-dimensionen;

    cat(2.A.B) - returnerar en array [А.В] där rader kombineras (horisontell sammanlänkning);

    cat(1, A.B) - returnerar en array [A:B] där kolumner kombineras (vertikal sammanlänkning);

    B=cat(DIM.Al,A2,...) - sammanfogar en uppsättning inmatningsmatriser Al, A2,... längs DIM-dimensionen.

Funktionerna cat(DIM,C(:)) och cat(DIM.C.FIELD) tillhandahåller sammanlänkningen (förening) av celler i en cellmatris (se lektion 15) eller strukturer av en uppsättning strukturer (se lektionen) 14) som innehåller numeriska matriser i en enda matris. Följande är exempel på hur du använder kattfunktionen:

» М1=

» М2=

M2 =

» catd.Ml.M2)

ans=

5 B

» cat(2.Ml.M2)

ans=

1 2 5 6

3 4 7 8

» M-katt(3.Ml.M2) M(:,:.l) =

M(:,:,2) =

Arbeta med dimensioner

Beräkna antalet dimensioner för en array

Funktionen ndims(A) returnerar dimensionen för array A (om den är större än eller lika med två). Men om inmatningsargumentet är en Java-array eller en array av Java-arrayer, kommer denna funktion att returnera 2 oavsett storleken på arrayen. Följande exempel illustrerar användningen av ndims-funktionen:

» M=rand(2:3:4:5):

» ndims(M)

ans=

4
Beräkna storleken på en matrisdimension

Storleksfunktionen används för att beräkna storleken på varje arraydimension:

    M = storlek(A.DIM) returnerar storleken på dimensionen som specificeras av DIM-skalären som en radvektor av storlek 2. För en tvådimensionell eller endimensionell array A returnerar storlek(A.l) antalet rader, och storlek(A, 2) antalet kolumner;

För N-dimensionella arrayer returnerar A för n>2 storlek(A) en N-dimensionell radvektor som representerar sökningen av arrayen, den sista komponenten i denna vektor är N. Vektorn innehåller inte data om enhetsdimensioner (de där radvektorn eller kolumnvektorn, dvs storlek(A,DIM)==l). Undantaget är N-dimensionella Java-arrayer av javaarrays, som returnerar storleken på den högsta nivån.

I allmänhet, när inmatningsargumentstorleken är en javaarray, är det returnerade antalet kolumner alltid 1, och antalet rader (rader) är lika med storleken (längden) på javarrayen.

    Size ze(A) returnerar storleken på de första N dimensionerna av array A;

    D = storlek (A), för mxn matris A returnerar en radvektor med två element, där den första komponenten är antalet rader m, och den andra komponenten är antalet kolumner n;

    Storlek(A) returnerar antalet rader och kolumner i olika utdata (utgångar i MATLAB-terminologi) typ.

Permutationer av arraydimensioner

Om vi ​​representerar en flerdimensionell array som sidor, så är deras permutation en permutation av arraydimensionerna. För en tvådimensionell array betyder permutation ofta införlivande- ersätta rader med kolumner och vice versa. Följande funktioner generaliserar matristransponering till fallet med flerdimensionella arrayer och ger permutation av dimensionerna för flerdimensionella arrayer:

    Permutera (A, ORDER) - arrangerar om dimensionerna för array A i den ordning som bestäms av permutationsvektorn ORDER. ORDER-vektorn är en av de möjliga permutationerna för alla heltal från 1 till N, Var N- dimension av array A;

    ipermuteCA, ORDER) - inversen av permute: permute(permute(A. ORDER), ORDER)=A

Följande är exempel på dessa funktioner och storleksfunktionen:

» A=:

» B=;

» С=;

» D=cat(3.A,B.C)

D(:,:,l) =

9 10

11 12

» storlek (D)

ans=

2 2 3

» storlek(permute(D.))

ans=

3 2 2

»storlek(ipermute(D.))

ans=

2 2 3

» ipermute(permutera(D,),)

ans(:. :,2) =

ans(:.:,3) =

9 10

11 12

Skift dimensioner av arrayer

Dimensionsförskjutning implementeras av shiftdim-funktionen:

    B=shiftdim(X,N) - förskjutning av dimensioner i arrayen X med N. Om M>0, så utförs förskjutningen av dimensionerna till höger till vänster, och de N första dimensionerna till vänster viks till slutet av arrayen, dvs dimensionerna rör sig moturs. Om M<0, сдвиг выполняется вправо, причем N первых размерностей, сдвинутых вправо, замещаются единичными размерностями;

    Shiftdim(X) Returnerar array B med samma antal element som array X, men med de ursprungliga enhetsdimensionerna borttagna. NSHIFTS-utgången visar antalet borttagna dimensioner. Om X är en skalär ändrar funktionen inte X , V , NSHIFTS.

Följande exempel illustrerar användningen av shiftdim-funktionen:

» A=randn(1.2.3,4):

»=shiftdim(A)

B(:.:.l) =

2.1707-1.01060.5077

0.05920.6145 1.6924

B(:.:,2) =

0.5913 0.3803 -0.0195

0.6436-1.0091-0.0482

B(:.:.3) =

0.0000 1.0950 0.4282

0.3179-1.87400.8956

B(:.:,4) =

0.7310 0.0403 0.5689

0.5779 0.6771 -0.2556

Ta bort enhetens mått

Funktionen squeeze(A) returnerar en array med alla enhetsdimensioner borttagna. En enhetsdimension är en dimension i vilken storlek(A. dim) == 1. Men om

A är en endimensionell eller tvådimensionell array (matris eller vektor), då kommer funktionen att returnera samma array A. Följande exempel förklarar hur squeeze fungerar:

» A=randn(1.2.1.3.1):

» B=squeeze(A)

0.6145 1.6924 -0.6436

0.5077 0.5913 0.3803

Observera att den femdimensionella arrayen A blir en 2-dimensionell array med storleken 2x3.

Vad har vi lärt oss för nytt?

I den här lektionen har vi lärt oss:

    Skapa flerdimensionella arrayer.

    Använd operatorn ":" i flerdimensionella arrayer.

    Få tillgång till enskilda element i flerdimensionella arrayer.

    Ta bort dimensioner från en flerdimensionell matris.

    Skapa arrayer fyllda med konstanter och slumptal.

    Utför arraysammanslagning.

    Beräkna antalet arraydimensioner och bestäm storleken på varje dimension.

    Ordna om, flytta och ta bort enskilda dimensioner i flerdimensionella arrayer.

Arrayer är huvudobjekten i systemet MATLAB : endast i version 4.xendimensionella arrayer- vektorer - och tvådimensionella arrayer - matriser; i version 5.0 är det möjligt att använda flerdimensionella arrayer - tensorer. Följande beskriver funktionerna för att bilda matriser och matriser, operationer på matriser, specialmatriser inom systemet MATLAB versioner 4.x.

Bildande av arrayer av en speciell typ

  • NOLLOR - bildandet av en matris med nollor
  • ENOR - bildande av en rad enheter
  • ÖGA - bildning av en enda matris
  • RAND - bildandet av en uppsättning element fördelade enligt en enhetlig lag
  • RANDN - bildandet av en uppsättning element fördelade enligt normallagen
  • KORSA - vektorprodukt
  • KRON - bildning av tensorprodukt
  • LINSPACE - bildning av en linjär grupp av noder med lika mellanrum
  • LOGRYMME - bildning av logaritmiska rutnätsnoder
  • MESHGRID - bildandet av noder av tvådimensionella och tredimensionella rutnät
  • : - bildning av vektorer och submatriser

Matrisoperationer

  • DIAG - bildande eller extraktion av matrisdiagonaler
  • TRIL - bildandet av en lägre triangulär matris (array)
  • TRIU - bildandet av en övre triangulär matris (array)
  • FLIPLR - rotation av matrisen kring den vertikala axeln
  • FLIPUD - rotation av matrisen i förhållande till den horisontella axeln
  • ROT90 - rotera matrisen 90 grader
  • OMFORMAR - konvertering av matrisstorlek

Specialmatriser

  • COMPAN är den medföljande matrisen för det karakteristiska polynomet
  • HADAMARD - Hadamard matris
  • HANKEL - Hankel-matris
  • HILB, INVHILB - Hilbert matris
  • MAGI - magisk fyrkant
  • PASCAL - Pascal matris
  • ROSER - Rosser matris
  • TOEPLITZ - Toeplitz matris
  • VANDER - Vandermonde matris
  • WILKINSON - Wilkinson matris

CONV, DECONV

Konvolution av endimensionella arrayer

Syntax:

Z = konv(x, y)
= dekonv(z, x)

Beskrivning:

Om det ges endimensionella arrayerx och y med längden m = längd(x) respektive n = längd(y), då är faltningen z en endimensionell matris med längden m + n -1, vars k:te element bestäms av formel

Funktionen z = conv(x, y) beräknar faltningen z för två endimensionella arrayer x och y.

Om vi ​​betraktar dessa arrayer som sampel av två signaler, kan vi formulera faltningssatsen i följande form:
Om X = fft() och Y = fft() är storlekskonsistenta Fourier-transformer av x- och y-signaler, så är conv(x, y) = ift(X.*Y) sant.

Med andra ord är faltning av två signaler ekvivalent med att multiplicera Fourier-transformerna av dessa signaler.

Funktionen = deconv(z, x) utför inversen av faltning. Denna operation är ekvivalent med att bestämma filtrets impulssvar. Om relationen z = conv(x, y) är giltig, då är q = y, r = 0.

Relaterade funktioner: Verktygslåda för signalbehandling.

1. Användarhandbok för Signal Processing Toolbox. Natick: The MathWorks, Inc., 1993.

Ställa in mallen för matriser och vektorer (matris...)

Operationen Matrix... (Matriser) tillhandahåller definitionen av vektorer eller matriser. Som du vet är en matris ett objekt som ges av dess namn i form av en matris med data MathCAD använder endimensionella arrayervektorer och tvådimensionella egentliga matriser

Matrisen kännetecknas av antalet rader (rader) och antalet kolumner (kolumner). Således är antalet element i en matris eller dess dimension lika med rader x kolumner. Elementen i matriser kan vara tal, konstanter, variabler och till och med matematiska uttryck. Följaktligen kan matriser vara numeriska och symboliska

Om du använder operationen Matrix... kommer ett litet fönster att dyka upp i det aktuella fönstret som låter dig ställa in dimensionen på en vektor eller matris (se bild 515 till höger) För att göra detta måste du specificera antalet rader rader och antalet kolumner kolumner. Infoga (Infoga) i fönstret kan du mata ut en matris eller vektormall (vektor har en av dimensionsparametrarna lika med 1)

Mallen innehåller parenteser och små mörka rektanglar som indikerar var du anger värden (numeriska eller tecken) för element i en vektor eller matris. En av rektanglarna kan aktiveras (genom att markera den med muspekaren). Samtidigt ligger den i ett hörn. Detta indikerar att värdena för motsvarande element kommer att matas in i det. Med hjälp av piltangenterna kan du rulla horisontellt genom alla rektanglar och ange alla element i en vektor eller matris.


Ris. 5. 15 Utdata av vektor- och matrismallar och deras fyllning

Medan elementen i vektorer eller matriser skrivs in, visas tomma mallar utan några kommentarer. Men om du avslutar inmatningen innan mallarna är helt ifyllda kommer systemet att visa ett felmeddelande och en tom mall blir röd. Utdata från en icke-existerande matris eller en felaktig indikation av dess index visas också i rött.

Om du använder åtgärden Insert (Inclusion) med en redan härledd matrismall, expanderar matrisen och dess storlek ökar. Knapp Radera (Radera) låter dig ta bort expansionen av matrisen genom att ta bort en rad eller kolumn från den.

Varje element i matrisen kännetecknas av en indexerad variabel, och dess position i matrisen indikeras av två index: ett indikerar radnumret, det andra kolumnnumret. För en indexerad variabeluppsättning måste du först ange variabelnamnet och sedan hoppa till indexuppsättningen genom att trycka på tangenten som anger tecknet]. Radindexet anges först, följt av kolumnindexet, avgränsat med kommatecken. Exempel på utdata av indexerade variabler (element i matrisen M) ges också i fig. 5.14.

En matris som degenererats till en rad eller en kolumn är en vektor. Dess element är indexerade variabler med ett index. Den nedre gränsen för indexen ges av värdet på systemvariabeln ORIGIN. Vanligtvis är dess värde satt till 0 eller 1.

Operationer med enkla variabler har övervägts ovan. Det är dock svårt att använda dem för att beskriva komplexa data, såsom en slumpmässig signal som kommer in i filteringången, eller för att lagra en bildram, etc. Därför ger högnivåspråk möjligheten att lagra värden som arrayer. I MatLab spelas denna roll av vektorer och matriser.

Följande är ett exempel på att definiera en vektor som heter a, och som innehåller värdena 1, 2, 3, 4:

a = ; % radvektor

För att komma åt ett eller annat element i vektorn används följande språkkonstruktion:

disp(a(1)); % visar värdet för det första elementet i vektorn
disp(a(2)); % visar värdet för det andra elementet i vektorn
disp(a(3)); % visar värdet för det tredje elementet i vektorn
disp(a(4)); % visar värdet för det fjärde elementet i vektorn

de där. du måste ange namnet på vektorn och, inom parentes, skriva indexnumret för det element som du tänker arbeta med. Till exempel, för att ändra värdet på det andra elementet i arrayen till 10, räcker det att skriva

a(2) = 10; % förändring av värdet för andra elementet med 10

Ofta finns det behov av att bestämma det totala antalet element i en vektor, d.v.s. bestämma dess storlek. Detta kan göras med funktionen length() enligt följande:

N = längd(a); % (N=4) antal arrayelement a

Om du vill ange en kolumnvektor kan detta göras så här

a = ; % kolumnvektor

b = '; % kolumnvektor

i detta fall utförs åtkomst till elementen i vektorer på samma sätt som för radvektorer.

Det bör noteras att vektorer inte bara kan vara sammansatta av enskilda tal eller variabler, utan också från vektorer. Till exempel visar följande kodavsnitt hur en vektor kan skapas från en annan:

a = ; % initialvektor a =
b = ; % andra vektor b =

Här består vektorn b av sex element och är baserad på vektorn a. Med denna teknik är det möjligt att öka storleken på vektorer under programdrift:

a = ; % ökning av vektor a med ett element

Nackdelen med den beskrivna metoden för att specificera (initialisera) vektorer är svårigheten att bestämma vektorer av stora storlekar, bestående av till exempel 100 eller 1000 element. För att lösa detta problem har MatLab funktioner för att initiera vektorer med nollor, ettor eller slumpmässiga värden:

a1 = nollor(1, 100); % radvektor, 100 element med
% nollvärden
a2 = nollor(100, 1); % kolumnvektor, 100 element med
% nollvärden
a3 = ettor(1, 1000); % radvektor, 1000 element med
% enstaka värden
a4 = ettor(1000, 1); % kolumnvektor, 1000 element med
% enstaka värden
a5 = rand(1000, 1); % kolumnvektor, 1000 element co
% slumpmässiga värden

Matriser i MatLab definieras på samma sätt som vektorer, med den enda skillnaden att båda dimensionerna är specificerade. Här är ett exempel på att initiera en 3x3 identitetsmatris:

E = ; % identitetsmatris 3x3

E = ; % identitetsmatris 3x3

Du kan definiera alla andra matriser på samma sätt, samt använda funktionerna nollor(), ones() och rand() ovan, till exempel:

Al = nollor(10,10); % nollmatris 10x10 element

A2 = nollor(10); % nollmatris 10x10 element
A3 = ettor(5); % matris 5x5, bestående av ettor
A4 = rand(100); % matris 100x100, från slumptal

För att komma åt elementen i en matris används samma syntax som för vektorer, men med indikeringen av raden och kolumnen där det nödvändiga elementet finns:

A = ; % matris 3x3
disp(A(2,1)); % visning av elementet som finns i
% på den andra raden i den första kolumnen, dvs. 4
disp(A(1,2)); % visning av elementet i
% i första raden i den andra kolumnen, dvs. 2

Det är också möjligt att välja den angivna delen av matrisen, till exempel:

Bl = A(:,1); %B1 = - val av den första kolumnen
B2 = A(2,:); %B2 = - markera den första raden
B3 = A(1:2,2:3); % B3 = - val av de två första
% rader och 2:a och 3:e kolumnen i matris A.

Dimensionen för valfri matris eller vektor i MatLab kan bestämmas med hjälp av funktionen size(), som returnerar antalet rader och kolumner i variabeln som anges som ett argument:

a = 5; % variabel a
A = ; % radvektor
B = ; % matris 2x3
storlek(a) % 1x1
storlek(A) % 1x3
storlek(B) % 2x3

Beräkna antalet dimensioner för en array

Fungera ndims(A) returnerar dimensionen för array A (om den är större än eller lika med två). Men om inmatningsargumentet är en Java-array eller en array av Java-arrayer, kommer denna funktion att returnera 2 oavsett storleken på arrayen. Följande exempel illustrerar användningen av funktionen ndims:

> > M = rand(2: 3: 4: 5):

> > ndims(M)

ans=

Beräkna storleken på en matrisdimension

Använd funktionen för att beräkna storleken på varje dimension i arrayen storlek:

  • M = storlek(A.DIM) returnerar storleken på dimensionen som specificeras av DIM-skalären som en radvektor av storlek 2. För en tvådimensionell eller endimensionell matris A returnerar storlek(A.l) antalet rader och storlek(A, 2) antalet av kolumner;

För N-dimensionella arrayer returnerar A för n>2 storlek(A) en N-dimensionell radvektor som representerar sökningen av arrayen, den sista komponenten i denna vektor är N. Vektorn innehåller inte data om enhetsdimensioner (de där radvektorn eller kolumnvektorn, dvs storlek(A,DIM)==l). Undantaget är N-dimensionella Java-arrayer av javaarrays, som returnerar storleken på den högsta nivån.

I allmänhet, när inmatningsargumentstorleken är en javaarray, är det returnerade antalet kolumner alltid 1, och antalet rader (rader) är lika med storleken (längden) på javarrayen.

  • = storlek(A) returnerar storleken på de första N dimensionerna av array A;
  • D = storlek (A), för mxn matris A returnerar en radvektor med två element, där den första komponenten är antalet rader m, och den andra komponenten är antalet kolumner n;
  • = storlek(A) returnerar antalet rader och kolumner i olika utdata (utdata i MATLAB-terminologi) typ.

Permutationer av arraydimensioner

Om vi ​​representerar en flerdimensionell array som sidor, så är deras permutation en permutation av arraydimensionerna. För en tvådimensionell array betyder permutation ofta införlivande- ersätta rader med kolumner och vice versa. Följande funktioner generaliserar matristransponering till fallet med flerdimensionella arrayer och ger permutation av dimensionerna för flerdimensionella arrayer:

  • permutera (A, BESTÄLLNING)- arrangerar om dimensionerna för arrayen A i den ordning som bestäms av permutationsvektorn ORDER. ORDER-vektorn är en av de möjliga permutationerna av alla heltal från 1 till N, där N är dimensionen av array A;
  • ipermute(A, ORDER)- den omvända operationen av permute: permute(permute(A. ORDER), ORDER)=A

Följande är exempel på användningen av dessa funktioner och funktionerna storlek:

> > A = [ 1 2: 3 4 ]:

> > B = [ 5 6 ; 78];

> > C = [9 10; 11 12];

> > D = cat(3.A,B.C)

D(:,:, 1) =

1 2

3 4

9 10

11 12

> > storlek (D)

ans=

2 2 3

>> storlek(permute(D.[ 3 2 1 ]))

ans=

3 2 2

> > storlek(ipermute(D.[ 2 1 3 ]))

Språket för teknisk datoranvändning

Miljontals ingenjörer och forskare runt om i världen använder MATLAB ® för att analysera och utveckla de system och produkter som förändrar vår värld. MATLAB-matrisspråket är världens mest naturliga sätt att uttrycka beräkningsmatematik. Inbäddad grafik gör det enkelt att visualisera och förstå data. Desktopmiljön uppmuntrar till experiment, utforskning och upptäckt. Dessa MATLAB-verktyg och funktioner är alla rigoröst testade och designade för att fungera tillsammans.

MATLAB hjälper dig att föra dina idéer till liv bortom skrivbordet. Du kan köra utforskningar på stora datamängder och skala till kluster och moln. MATLAB-kod kan integreras med andra språk, vilket gör att du kan distribuera algoritmer och applikationer över webb-, företags- och industrisystem.

Början av arbetet

Lär dig grunderna i MATLAB

Grundläggande språk

Syntax, arrayindexering och bearbetning, datatyper, operatorer

Importera och analysera data

Import och export av data, inklusive stora filer; dataförbehandling, visualisering och forskning

Matematik

Linjär algebra, differentiering och integration, Fouriertransformer och annan matematik

Grafisk konst

2D- och 3D-grafik, bilder, animation

Programmering

Skript, funktioner och klasser

Applikationsskapande

Apputveckling med App Designer, Programmerbart arbetsflöde eller GUIDE

Verktyg för mjukvaruutveckling

Felsökning och testning, organisering av stora projekt, integration med versionskontrollsystem, verktygslådpaketering

Om du upptäcker ett fel, välj en textbit och tryck på Ctrl + Retur
DELA MED SIG: