Ablakok.  Vírusok.  Jegyzetfüzetek.  Internet.  hivatal.  Segédprogramok.  Drivers

13. lecke.

Többdimenziós tömbök

    A többdimenziós tömbök fogalma

    A ":" operátor használata többdimenziós tömbökben

    Egy többdimenziós tömb egyetlen elemének elérése

    Dimenzió eltávolítása többdimenziós tömbből

    Állandókkal töltött oldalak létrehozása és véletlen számok

    Tömbök Uniója

    Egy tömb dimenziószámának kiszámítása és a méretek méretének meghatározása

    Tömbméretek permutációi

    Tömbök dimenzióinak eltolása

    Az egység méreteinek eltávolítása

Ebben a leckében az összetettebb adattípusokkal kapcsolatos kérdéseket fogjuk érinteni, amelyek magukban foglalják a többdimenziós tömböket is.

A többdimenziós tömbök fogalma

A MATLAB-ban a kétdimenziós tömb a többdimenziós tömb speciális esete. A többdimenziós tömböket kettőnél nagyobb méret jellemzi. Az ilyen tömbök vizuális értelmezést kaphatnak. Így egy mátrix (kétdimenziós tömb) írható fel egy papírlapra mátrixelemekből álló sorok és oszlopok formájában. Ezután az ilyen lapokkal ellátott jegyzetfüzet háromdimenziós tömbnek tekinthető, egy polc egy szekrényben notebookokkal - egy négydimenziós tömb, egy szekrény sok polccal - egy ötdimenziós tömb stb. Ebben a könyvben szinte sehol, Ezt a részt kivéve a tömbökkel fogunk foglalkozni, amelyek dimenziója kettőnél nagyobb, de még mindig hasznos tudni a MATLAB képességeiről a többdimenziós tömbök megadása és használata szempontjából.

Irodalmunkban a tömbök "mérete" és "dimenziója" szinte szinonimák. Azonban ebben a könyvben, valamint a MATLAB dokumentációjában és szakirodalmában határozottan eltérő jelentéssel bírnak. Alatt dimenzió tömb alatt a tömbök térbeli reprezentációjában lévő dimenziók számát értjük méret - a sorok és oszlopok száma (mxn) a tömb minden dimenziójában.

A ":" operátor használata többdimenziós tömbökben

Ha a tömbök normálisan vannak megadva (a ";" pontosvessző szimbólum használatával), a tömb sorainak (sorainak) száma 1-gyel több, mint a ":" karakterek száma, de a tömb kétdimenziós marad. A ":" operátor (kettőspont) megkönnyíti a tömbök méretének növelésére szolgáló műveletek végrehajtását. Adjunk példát egy háromdimenziós tömb összeadással történő kialakítására új oldal. Legyen egy kezdeti kétdimenziós M tömbünk, amelynek mérete 3x3:

» M=

M =

1 2 3

4 5 6

7 8 9

Ha új, azonos méretű oldalt szeretne hozzáadni, a következőképpen bontsa ki az M-et:

» 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ássuk, mit tartalmaz most az M tömb, ha kifejezetten meg van adva:

»M

M(:,:.1)=

1 2 3

4 5 6

7 8 9

M(:.:.2) =

10 11 12

13 14 15

16 17 18

Mint látható, az M(:.:, 1) és M(:,:,2) kifejezésekben szereplő számok az oldalszámot jelentik.

Egy többdimenziós tömb egyetlen elemének elérése

Az első, majd a második oldal központi elemének meghívásához a következő kifejezéseket kell beírni:

» M(2,2,1)

ans=

» MS2.2.2)

ans=

Így a többdimenziós tömbökben ugyanazt az indexelési szabályt használják, mint az egydimenziós és kétdimenziós tömbökben. Önkényes elem Például egy háromdimenziós tömb M(1.j.k) formában van megadva, ahol 1 a sor száma, j az oszlop száma és k az oldalszám. Ez az elem megjeleníthető, vagy adott x értéket rendelhet hozzá: M(1,j,k)=x.

Dimenzió eltávolítása többdimenziós tömbből

Már megjegyeztük az egyes oszlopok törlésének lehetőségét egy üres oszlopvektor értékeinek hozzárendelésével. Ez a technika könnyen kiterjeszthető oldalakra és általában egy többdimenziós tömb méreteire. Például a kapott M tömb első oldala a következőképpen távolítható el:

» M(:.:.1)=

M =

10 11 12

13 14 15

16 17 18

Könnyen belátható, hogy ebből a tömbből csak a második oldal maradt meg, és a tömb mérete 1-gyel csökkent - kétdimenzióssá vált.

Konstansokkal és véletlen számokkal töltött oldalak létrehozása

Ha a hozzárendelési jel után numerikus állandó van, akkor a tömb megfelelő része ezt az állandót tartalmazó elemeket tartalmazza. Például hozzunk létre egy tömböt az M tömbből (lásd a fenti példát), amelynek a második oldala ilyeneket tartalmaz:

»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

Most cseréljük le a tömb első oldalát egy nulla elemű oldalra:

»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

Az egyesek, nullák, rand és randn függvények használata

Az egyesek (tömbök létrehozása egyelemes elemekkel), nullák (nulla elemű tömbök létrehozása) és a rand vagy randn (egyenletes, illetve normál eloszlású véletlenszámú tömbök létrehozása) függvények szintén használhatók többdimenziós tömbök létrehozására. Az alábbiakban példákat adunk:

»E=egyesek(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=nullák(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

Ezek a példák meglehetősen nyilvánvalóak, és nem igényelnek különösebb megjegyzéseket. Ügyeljen azonban a tömbök méretének egyszerű megadására az egyes dimenziókhoz. Ezenkívül meg kell jegyezni, hogy ha legalább egy tömbdimenzió nulla, akkor a tömb üres lesz:

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

A =

Üres tömb: 3 x 3 x 3 x 0

Amint az től látható ezt a példát, üres tömb a megfelelő megjegyzéssel visszaküldjük.

Tömbök Uniója

Többdimenziós tömbök létrehozásához használja a mátrixokhoz korábban leírtakat speciális funkcióösszefűzött macska:

    cat(DIM,A,B) - a DIM dimenzió mentén két A és B tömb kombinálásának eredményét adja vissza;

    cat(2.A.B) - egy [А.В] tömböt ad vissza, amelyben a sorok össze vannak vonva (vízszintes összefűzés);

    cat(1, A.B) - egy [A:B] tömböt ad vissza, amelyben az oszlopok össze vannak vonva (függőleges összefűzés);

    B=cat(DIM.Al,A2,...) - összefűzi az Al, A2,... bemeneti tömböket a DIM dimenzió mentén.

A cat(DIM,C(:)) és cat(DIM.C.FIELD) függvények egy cellatömb celláinak összefűzését (egyesítését) biztosítják (lásd a 15. leckét), vagy egy struktúratömb struktúráit (lásd a leckét). 14) numerikus mátrixokat egyetlen mátrixba tartalmazó. Az alábbiakban példák láthatók a cat funkció használatára:

» М1=

» М2=

M2 =

» catd.Ml.M2)

ans=

5 B

» macska (2.Ml.M2)

ans=

1 2 5 6

3 4 7 8

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

M(:,:,2) =

Munka a dimenziókkal

Egy tömb dimenzióinak számának kiszámítása

A ndims(A) függvény az A tömb dimenzióját adja vissza (ha nagyobb vagy egyenlő kettőnél). De ha a bemeneti argumentum egy Java tömb vagy Java tömbök tömbje, akkor ez a függvény 2-t ad vissza, függetlenül a tömb méretétől. A következő példa a ndims függvény használatát mutatja be:

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

» dims(M)

ans=

4
Egy tömbdimenzió méretének kiszámítása

A méret függvény az egyes tömbdimenziók méretének kiszámítására szolgál:

    Az M = size(A.DIM) a DIM skalár által megadott méret méretét adja vissza 2-es méretű sorvektorként. Kétdimenziós vagy egydimenziós A tömb esetén a méret(A.l) a sorok számát adja vissza, és size(A, 2) az oszlopok száma;

N-dimenziós tömbök esetén az A n>2 size(A) esetén egy N-dimenziós sorvektort ad vissza, amely a tömb lapozását reprezentálja, ennek a vektornak az utolsó komponense N. A vektor nem tartalmaz adatokat az egységméretekről (azokról, ahol a sorvektor vagy oszlopvektor, azaz méret(A,DIM)==l). Kivételt képeznek az N-dimenziós javaarray-tömbök, amelyek a legmagasabb szintű tömb méretét adják vissza.

Általában, ha a bemeneti argumentum mérete javaarray, a visszaadott oszlopok száma mindig 1, a sorok (sorok) száma pedig megegyezik a javarray méretével (hosszúsággal).

    A Si ze(A) az A tömb első N dimenziójának méretét adja vissza;

    D = méret (A), mxn mátrix esetén A két elemű sorvektort ad vissza, amelyben az első komponens az m sorok száma, a második komponens az n oszlopok száma;

    A Size(A) a sorok és oszlopok számát adja vissza a különböző kimenetekben (kimenetek a MATLAB terminológiában) típusban.

Tömbméretek permutációi

Ha egy többdimenziós tömböt oldalként ábrázolunk, akkor ezek permutációja a tömb méreteinek permutációja. Kétdimenziós tömb esetén a permutáció gyakran azt jelenti átültetése- sorok cseréje oszlopokkal és fordítva. A következő függvények általánosítják a mátrix transzponálását többdimenziós tömbök esetén, és biztosítják a többdimenziós tömbök dimenzióinak permutációját:

    Permute (A, ORDER) - átrendezi az A tömb méreteit az ORDER permutációs vektor által meghatározott sorrendben. Az ORDER vektor az 1-től az összes egész szám lehetséges permutációja N, Ahol N- az A tömb dimenziója;

    ipermuteCA, ORDER) - a permute inverze: permute(permute(A. ORDER), ORDER)=A

Az alábbiakban példák láthatók ezekre a függvényekre és a méretfüggvényre:

» A=:

» B=;

» С=;

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

D(:,:,l) =

9 10

11 12

» méret (D)

ans=

2 2 3

» méret(permute(D.))

ans=

3 2 2

»méret(ipermute(D.))

ans=

2 2 3

» ipermute(permute(D,),)

ans(:. :,2) =

ans(:.:,3) =

9 10

11 12

Tömbök dimenzióinak eltolása

A dimenzióeltolást a shiftdim függvény valósítja meg:

    B=shiftdim(X,N) - az X tömb dimenzióinak eltolása N-nel. Ha M>0, akkor a jobb oldalon található méretek balra tolását hajtjuk végre, és a bal oldali N első dimenziót behajtjuk. a tömb végére, azaz a méretek az óramutató járásával ellentétes irányban mozognak. Ha M<0, сдвиг выполняется вправо, причем N первых размерностей, сдвинутых вправо, замещаются единичными размерностями;

    Shiftdim(X) Visszaadja a B tömböt, amely ugyanannyi elemet tartalmaz, mint az X tömb, de a kezdeti egységméreteket eltávolítva. Az NSHIFTS kimenet az eltávolított dimenziók számát mutatja. Ha X skalár, a függvény nem változtatja meg az X , V , NSHIFTS értékeket.

A következő példa a shiftdim funkció használatát mutatja be:

» 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

Az egység méreteinek eltávolítása

A squeeze(A) függvény egy olyan tömböt ad vissza, amelyen nincs minden egységdimenzió. Az egységdimenzió olyan méret, amelyben méret(A. dim) == 1. De ha

Az A egy egydimenziós vagy kétdimenziós tömb (mátrix vagy vektor), akkor a függvény ugyanazt az A tömböt adja vissza. A következő példa elmagyarázza a squeeze működését:

» A=randn(1.2.1.3.1):

» B = összenyomás (A)

0.6145 1.6924 -0.6436

0.5077 0.5913 0.3803

Vegye figyelembe, hogy az A ötdimenziós tömbből 2x3 méretű kétdimenziós tömb lesz.

Mi újat tanultunk?

Ebben a leckében megtanultuk:

    Hozzon létre többdimenziós tömböket.

    Használja a ":" operátort többdimenziós tömbökben.

    Hozzáférés a többdimenziós tömbök egyes elemeihez.

    Távolítsa el a dimenziókat egy többdimenziós tömbből.

    Hozzon létre állandókkal és véletlen számokkal töltött tömböket.

    Tömbegyesítés végrehajtása.

    Számítsa ki a tömbméretek számát, és határozza meg az egyes dimenziók méretét.

    Egyedi dimenziók átrendezése, eltolása és eltávolítása többdimenziós tömbökben.

A tömbök a rendszer fő objektumai MATLAB : csak a 4.x verziókbanegydimenziós tömbök- vektorok - és kétdimenziós tömbök - mátrixok; az 5.0-s verzióban lehetőség van többdimenziós tömbök – tenzorok – használatára. Az alábbiakban leírjuk a tömbök és mátrixok kialakításának funkcióit, a mátrixokkal végzett műveleteket, a rendszeren belüli speciális mátrixokat MATLAB verziók 4.x.

Speciális típusú tömbök kialakítása

  • NULLÁK - nullák tömbjének kialakítása
  • AZOK - egységek tömbjének kialakítása
  • SZEM - egyetlen mátrix kialakítása
  • RAND - egységes törvény szerint elosztott elemtömb kialakítása
  • RANDN - a normál törvény szerint elosztott elemtömb kialakítása
  • KERESZT - vektor termék
  • KRON - tenzorszorzat kialakulása
  • LINSPACE - egyenlő távolságú csomópontok lineáris tömbjének kialakítása
  • NAPLÓ - logaritmikus rács csomópontok kialakítása
  • HÁLÓRÁCS - kétdimenziós és háromdimenziós rácsok csomópontjainak kialakítása
  • : - vektorok és részmátrixok kialakítása

Mátrix műveletek

  • DIAG - mátrixátlók kialakítása vagy kivonása
  • TRIL - alsó háromszögmátrix (tömb) kialakítása
  • TRIU - felső háromszög alakú mátrix (tömb) kialakítása
  • FLIPLR - a mátrix elforgatása a függőleges tengely körül
  • FLIPUD - a mátrix elforgatása a vízszintes tengelyhez képest
  • ROT90 - forgassa el a mátrixot 90 fokkal
  • ÚJRAFORMÁLJA - mátrix méret átalakítás

Speciális mátrixok

  • TÁRSASÁG a karakterisztikus polinom kísérő mátrixa
  • HADAMARD - Hadamard mátrix
  • HANKEL - Hankel mátrix
  • HILB, INVHILB - Hilbert mátrix
  • VARÁZSLAT - varázslatos négyzet
  • PASCAL - Pascal mátrix
  • ROSSER - Rosser mátrix
  • TOEPLITZ - Toeplitz mátrix
  • VANDER - Vandermonde mátrix
  • WILKINSON - Wilkinson mátrix

CONV, DECONV

Egydimenziós tömbök konvolúciója

Szintaxis:

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

Leírás:

Ha adott egydimenziós tömbökx és y hossza m = hossz(x) és n = hossz(y), akkor a z konvolúció egy m + n -1 hosszúságú egydimenziós tömb, amelynek k-edik elemét a képlet

A z = conv(x, y) függvény két egydimenziós x és y tömb z konvolúcióját számítja ki.

Ha ezeket a tömböket két jel mintájának tekintjük, a következő formában fogalmazhatjuk meg a konvolúciós tételt:
Ha X = fft() és Y = fft() x és y jelek méretkonzisztens Fourier transzformációja, akkor conv(x, y) = ifft(X.*Y) igaz.

Más szóval, két jel konvolúciója egyenértékű ezen jelek Fourier-transzformációinak szorzásával.

A = deconv(z, x) függvény a konvolúció fordítottját hajtja végre. Ez a művelet egyenértékű a szűrő impulzusválaszának meghatározásával. Ha a z = conv(x, y) összefüggés érvényes, akkor q = y, r = 0.

Kapcsolódó funkciók: Jelfeldolgozási eszköztár.

1. Signal Processing Toolbox felhasználói kézikönyv. Natick: The MathWorks, Inc., 1993.

Mátrixok és vektorok sablonjának beállítása (Matrix...)

A Matrix... művelet (mátrixok) adja meg a vektorok vagy mátrixok definícióját. Mint tudod, a mátrix egy olyan objektum, amelyet a nevével adunk meg adattömb formájában. MathCAD használ egydimenziós tömbökvektorok és kétdimenziós tulajdonmátrixok

A mátrixot a sorok száma (Rows) és az oszlopok száma (Oszlopok) jellemzi. Így egy mátrix elemeinek száma vagy dimenziója egyenlő Sorok x Oszlopok A mátrixok elemei lehetnek számok, állandók, változók, sőt matematikai kifejezések is Ennek megfelelően a mátrixok lehetnek numerikusak és szimbolikusak is.

Ha a Mátrix... műveletet használja, akkor az aktuális ablakban megjelenik egy kis ablak, ahol beállíthatja egy vektor vagy mátrix méretét (lásd: 515. ábra a jobb oldalon) Ehhez meg kell adni a sorok száma Sorok és az oszlopok száma Oszlopok Beszúrás (Beszúrás) az ablakba, mátrix- vagy vektorsablont adhatunk ki (a vektornak az egyik dimenzióparamétere 1)

A sablon zárójeleket és kis sötét téglalapokat tartalmaz, amelyek jelzik, hogy hol kell megadni az értékeket (numerikus vagy karakteres) egy vektor vagy mátrix elemeihez. Az egyik téglalap aktívvá tehető (az egérkurzorral megjelölve). Ugyanakkor egy sarokban fekszik. Ez azt jelzi, hogy a megfelelő elem értékei bekerülnek abba. A kurzorbillentyűk segítségével vízszintesen görgethet az összes téglalapon, és beírhatja a vektor vagy mátrix összes elemét.


Rizs. 5. 15 Vektor és mátrix sablonok kimenete és kitöltése

A vektorok vagy mátrixok elemeinek bevitele közben az üres sablonok megjegyzések nélkül jelennek meg. Ha azonban a sablonok teljes kitöltése előtt fejezi be a bevitelt, a rendszer hibaüzenetet jelenít meg, és egy üres sablon pirosra vált. A nem létező mátrix kimenete vagy indexeinek hibás jelzése szintén piros színnel jelenik meg.

Ha a Beszúrás műveletet (Inclusion) egy már származtatott mátrixsablonnal használja, akkor a mátrix kibővül és mérete megnő. A Törlés (Törlés) gomb lehetővé teszi a mátrix bővítésének eltávolítását egy sor vagy oszlop törlésével.

A mátrix minden elemét egy indexelt változó jellemzi, és a mátrixban elfoglalt helyét két index jelzi: az egyik a sorszámot, a másik az oszlop számát. Indexelt változókészlet esetén először meg kell adnia a változó nevét, majd a karaktert beíró billentyű megnyomásával ugrani az indexkészletre]. Először a sorindexet kell megadni, majd az oszlopindexet, vesszővel elválasztva. Az indexelt változók (az M mátrix elemei) kimenetére szintén példákat adunk az 1. ábrán. 5.14.

Az egy sorba vagy egy oszlopba degenerált mátrix vektor. Elemei egy indexű indexelt változók. Az indexek alsó határát az ORIGIN rendszerváltozó értéke adja. Általában az értéke 0 vagy 1.

Az egyszerű változókkal végzett műveleteket fentebb megvizsgáltuk. Használatuk azonban nehézkes bonyolult adatok leírására, mint például a szűrőbemenetre érkező véletlenszerű jel, vagy képkeret tárolása stb. Ezért a magas szintű nyelvek lehetővé teszik az értékek tömbként történő tárolását. A MatLab-ban ezt a szerepet a vektorok és mátrixok játsszák.

A következő példa egy a nevű vektor definiálására szolgál, amely 1, 2, 3, 4 értékeket tartalmaz:

a = ; % sorvektor

A vektor egyik vagy másik elemének eléréséhez a következő nyelvi konstrukciót kell használni:

disp(a(1)); % megjeleníti a vektor 1. elemének értékét
disp(a(2)); % megjeleníti a vektor 2. elemének értékét
diszp(a(3)); % megjeleníti a vektor 3. elemének értékét
diszp(a(4)); % megjeleníti a vektor 4. elemének értékét

azok. meg kell adni a vektor nevét, és zárójelbe kell írni annak az elemnek az indexszámát, amellyel dolgozni kívánunk. Például ahhoz, hogy a tömb 2. elemének értékét 10-re módosítsuk, elég írni

a(2) = 10; % változás a 2. elem értékében 10-el

Gyakran szükség van egy vektor elemeinek teljes számának meghatározására, pl. méretének meghatározása. Ezt a long() függvény segítségével lehet megtenni az alábbiak szerint:

N = hosszúság(a); % (N=4) tömbelemek száma a

Ha oszlopvektort akarunk megadni, akkor ezt így lehet megtenni

a = ; % oszlopvektor

b = '; % oszlopvektor

ebben az esetben a vektorok elemeihez való hozzáférés ugyanúgy történik, mint a sorvektorok esetében.

Megjegyzendő, hogy a vektorok nem csak egyedi számokból vagy változókból, hanem vektorokból is összeállíthatók. Például a következő kódrészlet megmutatja, hogyan hozható létre egy vektor egy másikból:

a = ; % kezdeti vektor a =
b = ; % második vektor b =

Itt a b vektor hat elemből áll, és az a vektoron alapul. Ezzel a technikával lehetőség van a vektorok méretének növelésére a program működése során:

a = ; Az a vektor %-os növekedése egy elemmel

A vektorok megadásának (inicializálásának) leírt módszerének hátránya a nagy méretű, például 100 vagy 1000 elemből álló vektorok meghatározásának nehézsége. A probléma megoldására a MatLab funkciókkal rendelkezik a vektorok nullákkal, egyesekkel vagy véletlenszerű értékekkel történő inicializálására:

a1 = nullák(1, 100); % sorvektor, 100 elemmel
% null értékek
a2 = nullák(100, 1); % oszlopvektor, 100 elemmel
% null értékek
a3 = egyesek(1, 1000); % sorvektor, 1000 elemmel
% egyedi értékek
a4 = egyesek(1000, 1); % oszlopvektor, 1000 elemmel
% egyedi értékek
a5 = rand(1000; 1); % oszlopvektor, 1000 elem társ
% véletlenszerű értékek

A MatLab mátrixai a vektorokhoz hasonlóan vannak definiálva, azzal az egyetlen különbséggel, hogy mindkét dimenzió meg van adva. Íme egy példa egy 3x3-as identitásmátrix inicializálására:

E = ; % azonosságmátrix 3x3

E = ; % azonosságmátrix 3x3

Ugyanígy definiálhat bármilyen más mátrixot, valamint használhatja a fenti zeros(), onees() és rand() függvényeket, például:

A1 = nullák(10,10); % nulla mátrix 10x10 elem

A2 = nullák(10); % nulla mátrix 10x10 elem
A3 = egyesek(5); % mátrix 5x5, egyesekből áll
A4 = rand(100); % mátrix 100x100, véletlen számokból

A mátrix elemeinek eléréséhez ugyanazt a szintaxist kell használni, mint a vektorok esetében, de meg kell jelölni azt a sort és oszlopot, ahol a kívánt elem található:

A = ; % mátrix 3x3
disp(A(2,1)); A benne lévő elem százalékos megjelenítése
% az első oszlop második sorában, azaz. 4
disp(A(1,2)); Az elem %-os megjelenítése in
% a második oszlop első sorában, azaz. 2

Lehetőség van a mátrix meghatározott részének kiválasztására is, például:

B1 = A(:,1); %B1 = - az első oszlop kiválasztása
B2 = A(2,:); %B2 = - az első sor kiemelése
B3 = A(1:2;2:3); % B3 = - az első kettő kiválasztása
% sorok és az A mátrix 2. és 3. oszlopa.

A MatLab bármely mátrixának vagy vektorának dimenziója meghatározható a size() függvénnyel, amely az argumentumként megadott változó sorainak és oszlopainak számát adja vissza:

a = 5; % változó a
A = ; % sorvektor
B = ; % mátrix 2x3
méret(a) % 1x1
méret(A) % 1x3
méret(B) % 2x3

Egy tömb dimenzióinak számának kiszámítása

Funkció dims(A) az A tömb dimenzióját adja vissza (ha nagyobb vagy egyenlő kettőnél). De ha a bemeneti argumentum egy Java tömb vagy Java tömbök tömbje, akkor ez a függvény 2-t ad vissza, függetlenül a tömb méretétől. A következő példa a függvény használatát szemlélteti dims:

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

>> dims (M)

ans=

Egy tömbdimenzió méretének kiszámítása

A tömb egyes dimenzióinak méretének kiszámításához használja a függvényt méret:

  • M = méret (A.DIM) a DIM skalár által megadott méret méretét adja vissza 2-es méretű sorvektorként. Kétdimenziós vagy egydimenziós A tömb esetén a size(A.l) a sorok számát, a méret(A, 2) pedig a számot adja vissza. oszlopok;

N-dimenziós tömbök esetén az A ha n>2 size(A) egy N-dimenziós sorvektort ad vissza, amely a tömb lapozását reprezentálja, ennek a vektornak az utolsó összetevője N. A vektor nem tartalmaz adatokat az egységméretekről (azokról, ahol a sorvektor vagy oszlopvektor, azaz méret(A,DIM)==l). Kivételt képeznek az N-dimenziós javaarray-tömbök, amelyek a legmagasabb szintű tömb méretét adják vissza.

Általában, ha a bemeneti argumentum mérete javaarray, a visszaadott oszlopok száma mindig 1, a sorok (sorok) száma pedig megegyezik a javarray méretével (hosszúsággal).

  • = méret (A) visszaadja az A tömb első N dimenziójának méretét;
  • D = méret (A), mxn mátrix esetén A két elemű sorvektort ad vissza, amelyben az első komponens az m sorok száma, a második komponens az n oszlopok száma;
  • = méret (A) a sorok és oszlopok számát adja vissza a különböző kimenetekben (kimenetek a MATLAB terminológiában) típusban.

Tömbméretek permutációi

Ha egy többdimenziós tömböt oldalként ábrázolunk, akkor ezek permutációja a tömb méreteinek permutációja. Kétdimenziós tömb esetén a permutáció gyakran azt jelenti átültetése- sorok cseréje oszlopokkal és fordítva. A következő függvények általánosítják a mátrix transzponálását többdimenziós tömbök esetén, és biztosítják a többdimenziós tömbök dimenzióinak permutációját:

  • permutáció (A, ORDER)- átrendezi az A tömb méreteit az ORDER permutációs vektor által meghatározott sorrendben. Az ORDER vektor az 1-től N-ig terjedő összes egész szám egyik lehetséges permutációja, ahol N az A tömb dimenziója;
  • ipermute(A, ORDER)- a permute fordított művelete: permute(permute(A. ORDER), ORDER)=A

Az alábbiakban példákat mutatunk be ezeknek a függvényeknek és a függvényeknek a használatára méret:

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

> > B = [ 5 6 ; 7 8];

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

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

D(:,:, 1) =

1 2

3 4

9 10

11 12

>> méret (D)

ans=

2 2 3

> > méret(permute(D.[ 3 2 1 ]))

ans=

3 2 2

> > méret(ipermute(D.[ 2 1 3 ]))

A műszaki számítástechnika nyelve

Mérnökök és tudósok milliói használják szerte a világon a MATLAB®-t a világunkat átalakító rendszerek és termékek elemzésére és fejlesztésére. A MATLAB mátrixnyelv a világ legtermészetesebb módja a számítási matematika kifejezésének. A beágyazott grafika megkönnyíti az adatok megjelenítését és megértését. Az asztali környezet ösztönzi a kísérletezést, a felfedezést és a felfedezést. Ezeket a MATLAB eszközöket és képességeket szigorúan tesztelték, és úgy tervezték, hogy együttműködjenek.

A MATLAB segít életre kelteni ötleteit az asztalon túl. Futtathat feltárásokat nagy adatkészleteken, és méretezhet fürtökre és felhőkre. A MATLAB kód integrálható más nyelvekkel, lehetővé téve algoritmusok és alkalmazások telepítését webes, vállalati és ipari rendszereken.

A munka kezdete

Tanuld meg a MATLAB alapjait

Nyelvi alapok

Szintaxis, tömb indexelés és feldolgozás, adattípusok, operátorok

Adatok importálása és elemzése

Adatok importálása és exportálása, beleértve a nagy fájlokat is; adatok előfeldolgozása, vizualizálása és kutatása

Matematika

Lineáris algebra, differenciálás és integráció, Fourier-transzformációk és egyéb matematika

Grafika

2D és 3D grafika, képek, animáció

Programozás

Szkriptek, függvények és osztályok

Alkalmazás létrehozása

Alkalmazásfejlesztés App Designer, Programable Workflow vagy GUIDE segítségével

Szoftverfejlesztő eszközök

Hibakeresés és tesztelés, nagy projektek szervezése, integráció verzióvezérlő rendszerrel, eszköztár csomagolás

Ha hibát észlel, jelöljön ki egy szövegrészt, és nyomja meg a Ctrl + Enter billentyűket
OSSZA MEG: