Kako podesiti pametne telefone i računare. Informativni portal
  • Dom
  • Greške
  • Operacije sa matlab nizovima. Numerički nizovi

Operacije sa matlab nizovima. Numerički nizovi

promijenit ćemo treći element niza. Ili, nakon uvoda:

» al(2)=(al(1)+al(3))/2;

drugi element niza će postati jednak aritmetičkoj sredini prvog i trećeg elementa. Pisanje nepostojećeg elementa je savršeno ispravno - to znači dodavanje novog elementa već postojećem nizu:

Primjenjujući funkciju dužine na niz a1 nakon izvođenja ove operacije, nalazimo da se broj elemenata u nizu povećao na četiri:

» dužina (al) ans = 4

Ista akcija - "produženje niza a1" - može se izvesti pomoću operacije spajanja:

Niz možete definirati navođenjem svih njegovih elemenata pojedinačno:

» a3(1)=67; a3(2)=7,8; a3(3)=0,017;

Međutim, ovaj način stvaranja nije efikasan.

Drugi način za kreiranje jednodimenzionalnog niza zasniva se na upotrebi posebne funkcije, označene dvotočkom (operacija formiranja raspona numeričkih vrijednosti). Nakon dvotačke upišite prvi broj raspona, korak (inkrement) i konačni broj raspona. Na primjer:

»diap=3,7:0,3:8,974;

Ako ne morate da prikažete ceo rezultujući niz, onda na kraju skupa (posle završnog broja opsega) treba da upišete tačku i zarez. Da biste saznali koliko elemenata ima u nizu, pozovite funkciju dužine (ime niza).

Za stvaranje dvodimenzionalni niz(matrice) možete koristiti i operaciju konkatenacije. Elementi niza se upisuju jedan za drugim

12 Prema njihovom rasporedu u redovima, tačka-zarez se koristi kao razdjelnik reda.

Unesite sa tastature:

» a=

Pritisnite ENTER, dobijamo:

Rezultirajuća matrica 3x2 a (broj redova je naveden prvi, broj kolona je naveden drugi) također se može formirati vertikalnom konkatenacijom vektora reda:

»a=[;;];

ili horizontalna konkatenacija vektora stupaca:

» a=[,];

Strukturu kreiranih nizova možete pronaći pomoću naredbe whos(ime niza), dimenziju niza pomoću funkcije ndims i veličinu niza prema veličini.

Dvodimenzionalni nizovi se također mogu specificirati korištenjem operacije indeksiranja, zapisivanjem njegovih elemenata zasebno. Broj reda i stupca na čijem se presjeku nalazi navedeni element niza označeni su zarezima u zagradama. Na primjer:

» a(1,1)=1; a(1,2)=2; a(2,1)=3;

» a(2,2)=4; a(3,1)=5; a(3,2)=6;

Međutim, biće mnogo efikasnije ako, pre nego što počnete da pišete elemente niza, kreirate niz prave veličine funkcije jedinice (m, n) ili nule (m, n), ispunjene jedinicama ili nulama (m je broj redova, n broj kolona). Kada se te funkcije pozovu, memorija je unaprijed dodijeljena date veličine niz, nakon toga postepeno propisivanje elemenata sa potrebnim

13 vrijednosti ne zahtijeva ponovnu izgradnju memorijske strukture dodijeljene za niz.

Ove funkcije se također mogu koristiti kada se specificiraju nizovi drugih dimenzija.

Ako nakon formiranja niza X trebate promijeniti njegovu veličinu bez promjene elemenata niza, možete koristiti funkciju preoblikovanja (X, M, N), gdje su M i N nove veličine niza X

Rad ove funkcije moguće je objasniti samo na osnovu načina na koji MATLAB sistem pohranjuje elemente nizova u memoriju računara. Pohranjuje ih u neprekinuto područje memorije po redoslijedu kolona: prvi se postavljaju elementi prve kolone, zatim elementi druge kolone i tako dalje. Pored stvarnih podataka (elemenata niza), memorija računara takođe pohranjuje kontrolne informacije: tip niza (na primjer, dupli), dimenzija i veličina niza, ostale informacije o servisu. Ova informacija je dovoljna za određivanje granica kolona. Iz toga slijedi da je za preoblikovanje matrice dovoljno samo promijeniti servisne informacije i ne dirajte svoje podatke.

Možete zamijeniti redove matrice sa njenim stupcima koristeći transportnu operaciju, koja je označena znakom." (tačka i apostrof). Na primjer,

»A=;

"B=A."

Operacija " (apostrof) vrši transpoziciju za realne matrice i transpoziciju sa simultanom kompleksnom konjugacijom za kompleksne matrice.

Objekti sa kojima MATLAB radi su nizovi. Čak i jedan dati broj u MATLAB internom predstavljanju je niz,

koji se sastoji od jednog elementa. MATLAB vam omogućava da izračunate sa ogromnim nizovima brojeva jednako lako kao i sa pojedinačnim brojevima, a ovo je jedan od najuočljivijih i važne pogodnosti MATLAB sistemi u odnosu na druge softverski paketi, fokusiran na računarstvo i programiranje. Pored memorije potrebne za pohranjivanje numeričkih elemenata (po 8 bajtova u slučaju realnih brojeva i 16 bajtova u slučaju kompleksni brojevi), MATLAB automatski dodjeljuje memoriju za kontrolne informacije prilikom kreiranja nizova.

Izračuni niza

U tradicionalnim programskim jezicima, nizovi se izračunavaju element po element, u smislu da svaka pojedinačna operacija mora biti programirana na posebnom elementu niza. U M-jeziku MATLAB sistema, moćne grupne operacije su dozvoljene na cijelom nizu odjednom. Grupne operacije sistema MATLAB omogućavaju postavljanje izraza na izuzetno kompaktan način, u čijem proračunu se zapravo obavlja gigantski obim posla.

Operacije sabiranja i oduzimanja matrice (kao što znate iz linearne algebre) su označene standardnim + i - predznacima.

Definirajte matrice A i B i izvršite operaciju sabiranja matrice:

» A=; B=;

» A+B

Ako se koriste operandi različite veličine, izdaje se poruka o grešci, osim ako jedan od operanada nije skalar. Prilikom izvođenja operacije A + skalar (A je matrica), sistem će proširiti skalar na niz veličine A, koji se dalje dodaje element po element u A.

15 Za množenje po elementima i dijeljenje nizova po elementima

iste veličine, kao i eksponencijacije nizova element po element, koriste se operacije koje se označavaju kombinacijama dva znaka: .* , ./ i

.^. Upotreba kombinacija simbola objašnjava se činjenicom da simboli * i / označavaju posebne operacije linearne algebre na vektorima i matricama.

Pored operacije ./, koja se naziva desna operacija dijeljenja po elementima, postoji i operacija dijeljenja lijevog elementa. \. Hajde da objasnimo razliku između

ove operacije. Izraz A./B vodi do matrice sa elementima A (k, m) / B (k, m), a izraz A. \ B vodi do matrice sa elementima B (k, m) / A (k, m).

Znak * se dodeljuje množenju matrica i vektora u smislu linearne algebre.

Znak \ je fiksiran u MATLAB sistemu za rješenje izazovan zadatak linearna algebra - pronalaženje korijena sistema linearnih jednačina. Na primjer, ako želite riješiti sistem linearnih jednačina

gdje je A data kvadratna matrica veličine N x N, b je dati vektor stupca dužine N, tada je za pronalaženje nepoznatog vektora stupca y dovoljno izračunati izraz A \ b (ovo je ekvivalentno operaciji: A −1 B ).

Tipični problemi analitičke geometrije u prostoru, koji se odnose na pronalaženje dužina vektora i uglova između njih, uz proračun skalarnih i vektorskih proizvoda, lako se rešavaju različitim sredstvima MATLAB sistema. Na primjer, namijenjen je pronalaženju unakrsnog proizvoda vektora posebna funkcija križ, na primjer:

»u=; v=;

»križ(u,v)

16 Skalarni proizvod vektora može se izračunati pomoću funkcije

suma opšte namene, koja izračunava zbir svih elemenata vektora (za matrice, ova funkcija izračunava sume za sve kolone). Skalarni proizvod, kao što je poznato, jednak je zbroju proizvoda odgovarajućih koordinata (elemenata) vektora. Dakle, izraz:

izračunava tačkasti proizvod dva vektora u i v. Tačkasti proizvod se također može izračunati kao: u*v′.

Dužina vektora se izračunava pomoću produkta tačke i funkcije kvadratnog korijena, na primjer:

» sqrt(suma(u.*u))

Prethodno razmatrane za skalare, operacije odnosa i logičke operacije se izvode u slučaju nizova element po element. Oba operanda moraju biti iste veličine, a operacija vraća rezultat iste veličine. U slučaju kada je jedan od operanada skalar, vrši se njegovo preliminarno proširenje čije je značenje već objašnjeno na primjeru aritmetičkih operacija.

Među funkcijama koje generiraju matrice sa datim svojstvima, ovdje spominjemo funkciju oka, koja proizvodi jedinične kvadratne matrice, kao i funkciju rand, koja se široko koristi u praksi, generirajući niz sa slučajnim elementima ravnomjerno raspoređenim na intervalu od 0 do 1. Na primjer, izraz

generiše 3x3 niz slučajnih brojeva sa elementima ravnomerno raspoređenim u intervalu od 0 do 1.

Ako ovu funkciju pozovete sa dva argumenta, na primjer R=rand(2,3), dobićete 2x3 matricu R nasumičnih elemenata. Kada se rand poziva sa tri ili više skalarnih argumenata, stvaraju se višedimenzionalni nizovi slučajnih brojeva.

Odrednica kvadratna matrica izračunato pomoću funkcije det. Među funkcijama koje obavljaju najjednostavnije proračune na nizovima,

pored navedenog funkcije suma, spomenimo i funkciju prod, koja je po svemu slična funkciji sum, samo što izračunava ne zbir elemenata, već njihov proizvod. Funkcije max i min traže maksimalne i minimalne elemente nizova, respektivno. Za vektore, oni vraćaju jedan numerička vrijednost, a za matrice generiraju skup ekstremnih elemenata izračunatih za svaki stupac. Funkcija sortiranja sortira elemente jednodimenzionalnih nizova uzlaznim redoslijedom, a za matrice sortira za svaki stupac posebno.

Konačno, razmislite jedinstvena prilika M-jezik MATLAB sistema izvodi grupne proračune na nizovima koristeći uobičajeno matematičke funkcije, koji u tradicionalnim programskim jezicima radi samo sa skalarnim argumentima. Kao rezultat, sa izuzetno kompaktnim notama koje su zgodne za kucanje interaktivni način rada rad sa komandni prozor MATLAB sistema, moguće je izvršiti veliku količinu proračuna. Na primjer, postoje samo dvije kratki izrazi

» x=0:0,01:pi/2; y=sin(x);

izračunajte vrijednosti sin funkcije u 158 tačaka odjednom, formirajući dva vektora x i y sa po 158 elemenata.

Grafički prikaz funkcija

Grafičke mogućnosti MATLAB sistema su moćne i raznovrsne. Hajde da istražimo funkcije koje su najjednostavnije za korišćenje (grafika visokog nivoa).

Formirajte dva vektora x i y:

» x=0:0,01:2; y=sin(x);

Pozovite funkciju:

»plot(x,y)

a na ekranu ćete dobiti grafik funkcije (slika 1).

Rice. 1. Grafikon funkcije y=sin(x)

MATLAB pokazuje grafičkih objekata u posebnim grafičkim prozorima sa riječju Slika u naslovu.

Bez uklanjanja prvog grafičkog prozora sa ekrana, unesite izraze sa tastature

» z=cos(x);

» plot(x,z)

i dobiti novi raspored funkcije u istom grafičkom prozoru (u ovom slučaju nestaju stare koordinatne osi i graf - to se može postići i naredbom clf, naredba cla briše samo graf, dovodeći koordinatne ose na njihove standardni rasponi od 0 do 1).

Ako trebate nacrtati drugi grafikon "na vrhu prvog grafikona", onda prije sekundarnog poziva grafička funkcija plot, morate izvršiti naredbu čekanja, koja je dizajnirana da zadrži trenutni grafički prozor:

» x=0:0,01:2; y=sin(x);

»plot(x,y)

» z=cos(x);

" Čekaj

» plot(x,z)

Gotovo ista stvar će se desiti (slika 2) ako upišete:

» x=0:0,01:2; y=sin(x); z=cos(x);

»plot(x,y,x,z)

Rice. 2. Grafovi funkcija y=sin(x), z=cos(x), ugrađeni u jedan grafički prozor

Ako trebate vizualizirati nekoliko grafova u isto vrijeme tako da ne ometaju jedan drugog, onda se to može učiniti na dva načina. Prvo rješenje je da ih iscrtate u različitim grafičkim prozorima. Da biste to učinili, prije nego što ponovo pozovete funkciju plot, upišite naredbu figure, koja kreira novi grafički prozor i prisiljava sve sljedeće funkcije crtanja da ih tamo prikažu.

Drugo rješenje za prikaz višestrukih dijagrama bez konfliktnih raspona osa je korištenje funkcije subplot. Ova funkcija dozvoljava

20 em podijeljena izlazna površina grafičke informacije u nekoliko podregija

u svakom od kojih možete prikazati grafikone različitih funkcija.

Na primjer, za prethodno obavljene proračune sa sin i cos funkcijama, nacrtajte grafove ove dvije funkcije u prvoj poddomenu, a funkciju exp(x) u drugu poddomenu istog grafičkog prozora (slika 3):

» w=exp(x);

» podzaplet (1,2,1); plot(x,y,x,z)

» podzaplet (1,2,2); plot(x,w)

Rice. 3. Grafovi funkcija y=sin(x), z=cos(x) i w=exp(x), izgrađeni u dvije podoblasti jednog grafičkog prozora

Opsezi varijabli na koordinatnim osa ovih poddomena su nezavisni jedan od drugog. Funkcija subplot uzima tri numerička argumenta, od kojih je prvi jednak broju redova podgrafa, drugi je broj stupaca podgrafa, a treći argument je broj podgrafa (broj se broji

Indeksi. Element niza A, koji se nalazi na preseku reda i i kolone j, označava se kao A(i, j).

Primjer
Razmotrite magic(4) matricu kao niz A:

A = magija (4)
A =

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

Tada je A(4, 3) element koji se nalazi na raskrsnici reda 4 i stupca 3, jednak 15.

Također možete izračunati zbir elemenata četvrte kolone

A(1, 4) + A(2, 4) + A(3, 4) + A(4, 4)
ans = 34

Elementi niza A mogu se referencirati pomoću jednog indeksa, A(k). Ovo je uobičajen način upućivanja na elemente vektora. Ali takođe je moguće pozvati se na elemente dvodimenzionalnog niza, u kom slučaju se ovaj niz tretira kao jedan dugi vektor kolone formiran od kolona originalnog niza. U ovom primjeru, A(12) je još jedan način upućivanja na vrijednost 15 koja odgovara elementu A(4, 3).

Ako se pokuša pristupiti elementu izvan matrice, program će generirati grešku:

t = A(4, 5)
??? Indeks prelazi dimenzije matrice. Indeks premašuje dimenziju matrice.

Ako se, s druge strane, elementu dodijeli vrijednost sa indeksima koji prelaze granice niza, tada MATLAB sistem automatski povećava veličinu matrice.

Primjer:

X=A;
X(4, 5) = 17

X=

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

Izbor podblokova niza. Ako koristite dvotočku u indeksnim izrazima, možete se pozvati na podblokove niza. Dakle, indeksni izraz A(1:k, j) se odnosi na blok od k elemenata u koloni j.

Primjer:

A(1:4,3)
ans =

3
10
6
15

Kolona 3 magične(4) matrice je istaknuta ovdje.

Operater

zbir(A(1:4, 3))
ans = 34

izračunava zbir elemenata kolone 3.

Međutim, postoji bolji način. Budući da se dvotočka sama po sebi odnosi na sve elemente reda ili stupca, posljednji zbir se može izračunati na sljedeći način

zbroj(A(:,3))
ans = 34

Također, od verzije 5.0, posljednji red ili stupac niza se može referencirati pomoću ključna riječ kraj. Dakle, operater

zbroj (A(:, kraj))
ans = 34

izračunava zbir elemenata u posljednjoj koloni matrice A.

Spajanje podblokova u niz. Operacija kombinovanja pojedinačnih podblokova u niz naziva se konkatenacija. Čak i pri formiranju početne matrice, kada se kombinuju pojedinačni elementi, vrši se operacija konkatenacije.Operator konkatenacije je par uglastih zagrada, unutar kojih su naznačeni pojedinačni elementi ili blokovi niza.

Primjer.
Koristeći matricu A jednaku magiji(4), formiramo novu matricu B veličine 8x8

B=
B=

16 2 3 13 48 34 35 45
5 11 10 8 37 43 42 40
9 7 6 12 41 39 38 44
4 14 15 1 36 46 47 33
64 50 51 61 32 18 19 29
53 59 58 56 21 27 26 24
57 55 54 60 25 23 22 28
52 62 63 49 20 30 31 17

Ova matrica se sastoji od četiri 4x4 bloka

16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
48 35 34 45
37 42 43 40
41 38 39 44
36 47 46 33
64 51 50 61
53 58 59 56
57 54 55 60
52 63 62 49
32 19 18 28
21 26 23 28
25 22 23 28
20 31 30 17

Ova matrica je polovina drugog magičnog kvadrata čiji su elementi u rasponu cijelih brojeva 1:64. Kolumne sume već imaju tačna vrijednost za magični kvadrat 8x8:

zbroj (B)
ans = 260 260 260 260 260 260 260 260

Međutim, zbir linija

zbroj (B")
ans = 196 196 196 196 324 324 324 324

ne sve.

Pokušajte pronaći one permutacije elemenata koje dovode matricu B u pravi magični kvadrat reda 8.

Uklanjanje redova i kolona. Koristeći koncept praznog niza, možete lako ukloniti redove, stupce i cijele podblokove.

Recimo

X=A
X=

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

Da biste uklonili drugu kolonu niza X, dovoljno je primijeniti operator

X(:,2)=
X=

16 3 13
5 10 8
9 6 12
4 15 1

Prilikom pokušaja uklanjanja jednog elementa niza, dolazi do greške jer rezultat nije niz:

X(1, 2) =
??? Dodjela indeksirane prazne matrice nije dozvoljena.
Zabranjeno je dodijeliti praznu matricu indeksnom izrazu
.

Međutim, korištenje jednog indeksa vam omogućava da uklonite jedan element ili niz elemenata, a preostali elementi se konvertuju u vektor reda.

X=A;
X(:, 2) =

X=

16 3 13
5 10 8
9 6 12
4 15 1

X(2:1:12) =
X=16
ili
X=A;
X(:, 2) =

X=

16 3 13
5 10 8
9 6 12
4 15 1

X(2:2:10) =
X = 16 9 3 6 13 12 1

Indeksiranje višedimenzionalni nizovi . U MATLAB-u je uobičajeno da se svaki niz, bez obzira na njegove dimenzije, čuva kao vektor kolone. Ovaj vektor je formiran udruživanjem (konkatenacijom) kolona originalnog niza.

Primjer.
MATLAB sistem pohranjuje niz A

A=

kao sledeći vektor kolone

2
4
3
6
2
0
9
8
1

Kada se pristupi nizu A sa jednim indeksom, ovom vektoru stupca se direktno pristupa. Poziv A(3) se odnosi na treću vrijednost u koloni; A(7) - na sedmom i tako dalje.

Ako je broj indeksa niza veći od 1, tada MATLAB izračunava indeks u stupcu za skladištenje koristeći vrijednosti dimenzija niza. Ako dvodimenzionalni niz A ima veličinu , gdje je d1 broj redova, a d2 broj stupaca, tada je za element sa brojem (i, j) njegova pozicija u vektoru pohrane određena kao (j-1 )*d1+i.

Primjer

Za element A(3, 2), MATLAB izračunava sljedeću poziciju u vektoru memorije (2-1)*3+3 = 6. Elementu označenom brojem 6 dodjeljuje se vrijednost 0.
Ova metoda skladištenja i šema indeksiranja primjenjuju se i na višedimenzionalne nizove. U ovom slučaju, MATLAB koristi šemu stranica za kreiranje stupca za skladištenje.
Korištenje jednog indeksa rezultira direktnu žalbu na vektor skladištenja.
Ako su data dva indeksa (i, j), onda MATLAB izračunava poziciju na gore opisan način, i to samo za prvu stranicu višedimenzionalnog niza i pod uslovom da su ti indeksi unutar raspona dimenzija originalnog niza.
Ako je specificirano više od dva indeksa, shema indeksiranja postaje složenija. Ako su četiri indeksa (i, j, k, l) data za četverodimenzionalni niz veličine d1xd2xd3xd4, tada se pozicija elementa u vektoru skladištenja izračunava na sljedeći način
s = (l-1)(d3)(d2)(d1)+(k-1)(d2)(d1)+(j-1)(d1)+i.
Opća formula za poziciju elementa u vektoru skladištenja koja odgovara elementu (j1 j2 ... jn-1 jn) n-dimenzionalnog niza veličine d1xd2xd3x ... xdn, je
s = (jn-1)(dn-1)(dn-2)...(d1)+(jn-1-1)(dn-2)...(d1)+...+(j2- 1)(d1)+j1.

Primjer

Razmotrimo višedimenzionalni niz C veličine 5x4x3x2. Na sl. 3.2 prikazuje formate prikaza i skladištenja.

Izlaz na displeju Način skladištenja
stranica(1,1) =
1
4 3 5
1 7 8
6 3 2
1 5 9
2 7 5
6 2
4
2
7 1 9
0 0 5
9 4 2
1 8 5

Sve matlab data predstavlja kao nizove. Veoma je važno razumjeti kako pravilno koristiti nizove. Nemoguće bez toga efikasan rad u MatLabu, posebno crtanje, rješavanje problema linearne algebre, obradu podataka, statistika i mnoge druge. Ovaj pododjeljak opisuje proračune s vektorima.

Niz je uređena, numerirana zbirka homogenih podataka. Niz mora imati ime. Nizovi se razlikuju po broju dimenzija ili dimenzijama: jednodimenzionalni, dvodimenzionalni, višedimenzionalni. Elementima se pristupa pomoću indeksa. U MatLabu, numerisanje elemenata niza počinje od jedan. To znači da indeksi moraju biti veći ili jednaki jedan.

Važno je razumjeti da su vektor, vektor reda ili matrica matematički objekt, a jednodimenzionalni, dvodimenzionalni ili višedimenzionalni nizovi načini pohranjivanja ovih objekata u kompjuter. Svugdje ispod, riječi vektor i matrica će se koristiti ako je sam objekt zanimljiviji od načina na koji je pohranjen. Vektor se može napisati u koloni (vektor kolone) iu redu (vektor reda). Vektori stupaca i vektori reda često će se nazivati ​​jednostavno vektori, a razlika se pravi u slučajevima kada je važan način na koji je vektor pohranjen u MatLab-u. Vektori i matrice su označeni kurzivom, a njihovi odgovarajući nizovi običnim monospace fontom, na primjer: "vektor a sadržan u nizu a", "upiši matricu R u niz r".

Unesite sabiranje i oduzimanje vektora

Počnimo raditi s nizovima sa jednostavan primjer- izračunavanje zbira vektora:
, .

Koristite nizove a i b za pohranjivanje vektora. Unesite niz a in komandna linija koristeći uglaste zagrade i razdvajanje elemenata vektora tačkom i zarezom:

» a =
a =
1.3000
5.4000
6.9000

Pošto se uneseni izraz ne završava tačkom i zarezom MatLab paket automatski deducira vrijednost varijable a. Unesite sada drugi vektor, potiskujući prikaz

» b = ;

Znak + se koristi za pronalaženje zbira vektora. Izračunajte zbroj, upišite rezultat u niz c i iznesite njegove elemente u komandni prozor:

» c \u003d a + b
c =
8.4000
8.9000
15.1000

Saznajte dimenziju i veličinu niza a koristeći ugrađene funkcije ndims i size:

» ndims(a)
ans =
2
» veličina(a)
ans =
3 1

Dakle, vektor a pohranjen u dvodimenzionalnom nizu a sa dimenzijom tri po jedan (vektor stupca od tri reda i jednog stupca). Slične operacije se mogu uraditi za nizove b i c. Budući da su brojevi u MatLab paketu predstavljeni kao jedan po jedan dvodimenzionalni niz, isti znak plus se koristi prilikom sabiranja vektora kao i za dodavanje brojeva.

Vektor reda se unosi u uglaste zagrade, ali elementi moraju biti odvojeni razmacima ili zarezima. Operacije sabiranja, oduzimanja i izračunavanja elementarnih funkcija iz vektora reda izvode se na isti način kao i kod vektora stupaca, što rezultira vektorom reda iste veličine kao i originalni. Na primjer:

» s1 =
s1 =
3 4 9 2
» s2 =
s1 =
5 3 3 2
» s3 = s1 + s2
s3 =
8 7 12 4

Napomena 1

Ako se veličine vektora na koje se primjenjuje sabiranje ili oduzimanje ne podudaraju, izdaje se poruka o grešci.

Naravno, za pronalaženje razlike vektora treba koristiti znak minus; s množenjem situacija je nešto složenija.
Unesite dva vektora reda:

» v1 = ;
» v2 = ;

Operacija .* (nemojte umetati razmak između tačke i zvjezdice!) rezultira množenjem vektora iste dužine po elementima. Rezultat je vektor sa elementima jednakim proizvodu odgovarajućih elemenata originalnih vektora:

» u = v1.*v2
u =
14 -15 -24 9

Koristeći .^, vrši se eksponencijacija po elementima:

» p = v1.^2
p=
4 9 16 1

Eksponent može biti vektor iste dužine kao i onaj koji se diže na stepen. U ovom slučaju, svaki element prvog vektora se podiže na potenciju jednaku odgovarajućem elementu drugog vektora:

» p = vl.^v2
P =
128.0000 -243.0000 0.0002 1.0000

Podjela odgovarajućih elemenata vektora iste dužine vrši se pomoću operacije ./

» d = v1./v2
d=
0.2857 -0.6000 -0.6667 0.1111

Obrnuta podjela element po element (podjela elemenata drugog vektora odgovarajućim elementima prvog) izvodi se pomoću operacije.\

» dinv=vl.\v2
dinv=
3.5000 -1.6667 -1.5000 9.0000

Dakle, tačka u MatLabu se koristi ne samo za unos decimalnih razlomaka, već i za označavanje da dijeljenje ili množenje nizova iste veličine treba izvršiti element po element.
Operacije element po element također uključuju operacije s vektorom i brojem. Dodavanje vektora i broja ne rezultira porukom o grešci. MatLab dodaje broj svakom elementu vektora. Isto važi i za oduzimanje:

» v = ;
» s = v + 1.2
s=
5.2000 6.2000 9.2000 11.2000
» r = 1,2 - v
r=
-2.8000 -4.8000 -6.8000 -8.8000
» r1 = v - 1.2
r1 = 2,8000 4,8000 6,8000 8,8000

Možete pomnožiti vektor brojem i na desnoj i na lijevoj strani:

» v = ;
» p = v*2
p=.
8 12 16 20
» pi = 2*v
pi =
8 12 16 20

Vektor možete podijeliti brojem:

» r = v/2
p=
2 3 4 5

Pokušaj dijeljenja broja vektorom rezultira porukom o grešci:

» r = 2/v
??? Greška u korištenju ==> /
Dimenzije matrice se moraju slagati.

Ako želite podijeliti broj sa svakim elementom vektora i rezultat zapisati u novi vektor, tada biste trebali koristiti operaciju ./.

» w = ;
» d = 12./w
d=
3 6 2

Sve gore navedene operacije primjenjuju se i na vektore redova i vektore stupaca.
Mogućnost MatLab-a da sve podatke predstavlja kao nizove je vrlo zgodna. Neka je, na primjer, potrebno izračunati vrijednost sin funkcije odjednom za sve elemente vektora sa(koji je pohranjen u nizu c) i zapišite rezultat u vektor d. Da dobijem vektor d dovoljno je koristiti jedan operator dodjeljivanja:

» d = sin(ovi)
d=
0.8546
0.5010
0.5712

Tako ugrađen u MatLab elementarne funkcije prilagoditi vrsti argumenata; ako je argument niz, tada će rezultat funkcije biti niz iste veličine, ali s elementima jednakim vrijednosti funkcije iz odgovarajućih elemenata originalnog niza. Potvrdite ovo drugim primjerom. Ako treba da nađeš Kvadratni korijen od vektorskih elemenata d sa znakom minus dovoljno je napisati:

» sqrt(-d)
ans =
0 + 0,9244i
0 + 0,7078i
0 + 0,7558i

Operator dodjeljivanja nije korišten, pa je MatLab paket pohranio odgovor u standardnu ​​varijablu ans.

Da biste odredili dužinu vektora stupaca ili vektora reda, koristite ugrađenu funkciju dužine:

» dužina(s1)
ans =
4

Više vektora stupaca može se kombinirati u jedan korištenjem uglastih zagrada i odvajanjem originalnih vektora stupaca tačkom i zarezom:

» v1 = ;
» v2 = ;
»v=
v=
1
2
3
4
5

Vektorska konkatenacija retka takođe koristi uglaste zagrade, ali spojeni vektori reda su odvojeni razmacima ili zarezima:

» v1 = ;
» v2 = ;
»v=
v=
1 2 3 4 5

Rad sa vektorskim elementima

Elementima vektora kolone ili vektora reda pristupa se pomoću indeksa koji je priložen okrugle zagrade nakon naziva niza u kojem je pohranjen vektor. Ako je među varijablama radno okruženje postoji niz v definiran vektorom reda

» v = ;

zatim za izlaz, na primjer, njegov četvrti element, koristite indeksiranje:

» v(4)
ans =
8.2000

Pojava elementa niza na lijevoj strani operatora dodjeljivanja rezultira promjenom niza

» v(2) = 555
v=
1.3000 555.0000 7.4000 8.2000 0.9000

Elementi niza se mogu koristiti za formiranje novih nizova, na primjer

»u=
u=
7.4000
555.0000
1.3000

Za postavljanje određenih elemenata vektora u drugi vektor u datom redoslijedu, koristite vektorsko indeksiranje. Pisanje u niz wčetvrti, drugi i peti element v proizvedeno kako slijedi:

» ind = ;
» w = v(ind)
w =
8.2000 555.0000 0.9000

MatLab pruža zgodan način pristup blokovima uzastopnih elemenata vektora kolone ili vektora reda. Za ovo služi indeksiranje sa dvotočkom. Pretpostavimo da je to u nizu w, što odgovara vektoru reda od sedam elemenata, potrebno je elemente od drugog do šestog zamijeniti nulama. Indeksiranje dvotočkom omogućava jednostavno i vizualno rješavanje problema:

» w = ;
» w(2:6) = 0;
» w
w =
0.1000 0 0 0 0 0 9.8000

Dodjela w(2:6) = 0 je ekvivalentna sekvenci komandi
w(2) = 0; w(3)=0; w(4)=0; w(5)=0; w(6)=0.
Indeksiranje debelog crijeva je korisno kada izvlačite dio velike količine podataka u novi niz:

» w - ;
»wl = w(3:5)
wl=
3.3000 5.1000 2.6000

Napravite niz w2 koji sadrži elemente w osim četvrtog. U ovom slučaju, zgodno je koristiti dvotočku i konkatenaciju niza:

» w2 =
w2 =
0.1000 2.9000 3.3000 2.6000 7.1000 9.8000

Elementi niza mogu biti uključeni u izraze. Pronalaženje, na primjer, geometrijske sredine elemenata niza u, može se uraditi ovako:

» gm = (u(l)*u(2)*u(3))^(l/3)
gm=
17.4779

Naravno, ova metoda nije baš zgodna za dugačke nizove. Da biste pronašli geometrijsku sredinu, potrebno je da u formulu unesete sve elemente niza. U MatLabu postoji dosta specijalnih funkcija koje olakšavaju takve proračune.

Primjena funkcija obrade podataka na vektore

Množenje elemenata vektora stupca ili vektora reda vrši se pomoću funkcije prod:

» z = ;
» p = prod(z)
p=720

Funkcija suma je dizajnirana da sabere elemente vektora. Uz njegovu pomoć, lako je izračunati aritmetičku sredinu elemenata vektora z:

» zbroj(z)/dužina(z)
ans =
3.5000

MatLab također ima srednju vrijednost posebne funkcije za izračunavanje aritmetičke sredine:

» znači (z)
ans =
3.5000

Za utvrđivanje minimum i maksimum elemenata vektora su ugrađene funkcije min i max:

» m1 = max(z)
m1 =
6
» m2 ​​= min(z)
m2 =
1

Često je potrebno znati ne samo vrijednost minimalnog ili maksimalnog elementa u nizu, već i njegov indeks ( serijski broj). U ovom slučaju, ugrađene funkcije min i max moraju se koristiti s dva izlazna argumenta, na primjer

» = min(z)
m =
1
k =
3

Kao rezultat, varijabli m će biti dodijeljena vrijednost minimalni element niz z, a broj minimalnog elementa je pohranjen u varijablu k.
Za informacije o razne načine Da biste koristili funkcije, upišite pomoć i naziv funkcije u komandnu liniju. MatLab će izvesti u komandni prozor na razne načine pozivi funkcija sa dodatnim objašnjenjima.
Među osnovnim funkcijama za rad sa vektorima je i funkcija sortiranja vektora uzlaznim redoslijedom njegovih elemenata, sortiranje.

» r = ;
» R = sortiraj(r)
R=

Možete sortirati vektor u opadajućem redoslijedu koristeći isti funkcija sortiranja:

» R1 = -sort(-r)
R1 =
9.4000 7.1000 1.3000 0.8000 -2.3000 -5.2000

Redoslijed elemenata u rastućem redoslijedu njihovih modula vrši se pomoću funkcije abs:

» R2 = sortiraj(abs(r))
R2 =
0.8000 1.3000 2.3000 5.2000 7.1000 9.4000

Pozivanje sortiranja sa dva izlazna argumenta rezultira nizom indeksa podudaranja poredanog i izvorni nizovi:

» = sortiraj(r)
rs=
-5.2000 -2.3000 0.8000 1.3000 7.1000 9.4000
ind =
3 2 5 6 4 1

Lekcija broj 13.

Višedimenzionalni nizovi

    Koncept višedimenzionalnih nizova

    Korištenje operatora ":" u višedimenzionalnim nizovima

    Pristup pojedinačni element višedimenzionalni niz

    Uklanjanje dimenzije u višedimenzionalnom nizu

    Kreiranje stranica ispunjenih konstantama i slučajni brojevi

    Unija nizova

    Izračunavanje broja dimenzija niza i određivanje veličine dimenzija

    Permutacije dimenzija niza

    Pomicanje dimenzija nizova

    Uklanjanje dimenzija jedinice

U ovoj lekciji ćemo se dotaknuti pitanja vezanih za složenije tipove podataka, koji uključuju višedimenzionalne nizove.

Koncept višedimenzionalnih nizova

U MATLAB-u, dvodimenzionalni niz je poseban slučaj višedimenzionalnog niza. Višedimenzionalne nizove karakterizira dimenzija veća od dvije. Takvim se nizovima može dati vizuelna interpretacija. Dakle, matrica (dvodimenzionalni niz) može biti napisana na jednom listu papira u obliku redova i kolona koji se sastoje od elemenata matrice. Tada se bilježnica s takvim listovima može smatrati trodimenzionalnim nizom, policom u ormaru s bilježnicama - četverodimenzionalnim nizom, ormarićem s mnogo polica - petodimenzionalnim nizom, itd. U ovoj knjizi, gotovo nigdje, osim ovog odeljka, bavićemo se nizovima, dimenzija koje su veće od dve, ali je ipak korisno znati o mogućnostima MATLAB-a u smislu specificiranja i korišćenja višedimenzionalnih nizova.

U našoj literaturi pojmovi "veličine" i "dimenzije" nizova su gotovo sinonimi. Međutim, oni imaju izrazito različita značenja u ovoj knjizi, kao iu MATLAB dokumentaciji i literaturi. Ispod dimenzija nizovi se podrazumijevaju kao broj dimenzija u prostornom prikazu nizova, a pod veličina - broj redova i stupaca (mxn) u svakoj dimenziji niza.

Korištenje operatora ":" u višedimenzionalnim nizovima

Kada su nizovi normalno specificirani (koristeći simbol tačke-zarez ";"), broj redova (redova) niza je 1 veći od broja znakova ":", ali niz ostaje dvodimenzionalan. Operator ":" (dvotočka) olakšava izvođenje operacija za povećanje dimenzije nizova. Navedimo primjer formiranja trodimenzionalnog niza dodavanjem nova stranica. Neka nam je početni dvodimenzionalni niz M veličine 3x3:

» M=

M =

1 2 3

4 5 6

7 8 9

Da biste dodali novu stranicu iste veličine, možete proširiti M na sljedeći način:

» M(:.:.2)=

M(:.:.l) =

1 2 3

4 5 6

7 8 9

M(:.:.2) =

10 11 12

13 14 15

16 17 18

Pogledajmo šta sada sadrži niz M kada je eksplicitno specificiran:

» M

M(:,:.1)=

1 2 3

4 5 6

7 8 9

M(:.:.2) =

10 11 12

13 14 15

16 17 18

Kao što vidite, brojevi u izrazima M(:.:, 1) i M(:,:,2) znače broj stranice.

Pristup jednom elementu višedimenzionalnog niza

Da biste pozvali centralni element prvo prve, a zatim i druge stranice, potrebno je napisati sljedeće izraze:

» M(2.2,1)

ans=

» MS2.2.2)

ans=

Dakle, u višedimenzionalnim nizovima se koristi isto pravilo indeksiranja kao u jednodimenzionalnim i dvodimenzionalnim nizovima. Proizvoljni element, na primjer, trodimenzionalnog niza je specificiran kao M(1.j.k), gdje je 1 broj reda, j je broj kolone, a k je broj stranice. Ovaj element se može prikazati, ili ga možete dodijeliti postavljena vrijednost x: M(1,j,k)=x.

Uklanjanje dimenzije u višedimenzionalnom nizu

Već smo primijetili mogućnost brisanja pojedinačnih stupaca dodjeljivanjem vrijednosti vektora praznog stupca. Ova tehnika se lako može proširiti na stranice i, općenito, na dimenzije višedimenzionalnog niza. Na primjer, prva stranica rezultirajućeg niza M može se ukloniti na sljedeći način:

» M(:.:.1)=

M =

10 11 12

13 14 15

16 17 18

Lako je vidjeti da je u ovom nizu ostala samo druga stranica i da je dimenzija niza smanjena za 1 - postala je dvodimenzionalna.

Kreiranje stranica ispunjenih konstantama i slučajnim brojevima

Ako postoji numerička konstanta iza znaka dodjele, tada će odgovarajući dio niza sadržavati elemente koji sadrže ovu konstantu. Na primjer, napravimo niz od niza M (pogledajte primjer iznad) čija druga stranica sadrži jedinice:

»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

Sada zamijenimo prvu stranicu niza sa stranicom sa nula elemenata:

»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

Korištenje funkcija jedinica, nula, rand i randn

Funkcije one (kreiranje nizova sa pojedinačnim elementima), nule (kreiranje nizova sa nultim elementima) i rand ili randn (kreiranje nizova sa ravnomerno i normalno raspoređenim slučajnim brojevima, respektivno) takođe se mogu koristiti za kreiranje višedimenzionalnih nizova. Primjeri su dati u nastavku:

»E=jedinice(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=nule(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

Ovi primjeri su sasvim očigledni i ne zahtijevaju posebne komentare. Međutim, obratite pažnju na jednostavnost specificiranja veličina nizova za svaku dimenziju. Osim toga, treba napomenuti da ako je barem jedna dimenzija niza nula, tada će niz biti prazan:

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

A =

Prazan niz: 3 po 3 po 3 po 0

Kao što se vidi iz ovaj primjer, prazan niz se vraća sa odgovarajućim komentarom.

Unija nizova

Za kreiranje višedimenzionalnih nizova koristi se specijalna funkcija spajanja cat opisana ranije za matrice:

    cat(DIM,A,B) - vraća rezultat kombinovanja dva niza A i B duž DIM dimenzije;

    cat(2.A.B) - vraća niz [A.V] u kojem su redovi kombinovani (horizontalna konkatenacija);

    cat(1, A.B) - vraća niz [A:B] u kojem su kolone kombinovane (vertikalna konkatenacija);

    B=cat(DIM.Al,A2,...) - spaja skup ulaznih nizova Al, A2,... duž DIM dimenzije.

Funkcije cat(DIM,C(:)) i cat(DIM.C.FIELD) obezbeđuju, respektivno, spajanje (uniju) ćelija niza ćelija (vidi lekciju 15) ili struktura niza struktura (vidi lekciju 14) koje sadrže numeričke matrice u jednu matricu. Slijede primjeri korištenja cat funkcije:

» M1=

» M2=

M2 =

» kat.Ml.M2)

ans=

5 B

» mačka (2.Ml.M2)

ans=

1 2 5 6

3 4 7 8

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

M(:,:,2) =

Rad sa dimenzijama

Izračunavanje broja dimenzija niza

Funkcija ndims(A) vraća dimenziju niza A (ako je veća ili jednaka dva). Ali ako je ulazni argument Java niz ili niz Java nizova, onda bez obzira na dimenziju niza, ova funkcija će vratiti 2. Sljedeći primjer ilustruje upotrebu funkcije ndims:

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

» ndims(M)

ans=

4
Izračunavanje veličine dimenzije niza

Funkcija veličine se koristi za izračunavanje veličine svake dimenzije niza:

    M = size(A.DIM) vraća veličinu dimenzije koju specificira DIM skalar kao vektor reda veličine 2. Za dvodimenzionalni ili jednodimenzionalni niz A, size(A.l) vraća broj redova i veličina(A, 2) broj kolona;

Za N-dimenzionalne nizove, A za n>2 veličine(A) vraća N-dimenzionalni vektor reda koji predstavlja stranica niza, posljednja komponenta ovog vektora je N. Vektor ne sadrži podatke o jediničnim dimenzijama (one gdje vektor reda ili vektor kolone, tj. veličina (A,DIM)==l). Izuzetak su N-dimenzionalni nizovi Java nizovi javaarray koji vraća veličinu niza najvišeg nivoa.

Općenito, kada je veličina ulaznog argumenta javaarray, vraćeni broj stupaca je uvijek 1, a broj redova (redova) jednak je veličini (dužini) javarray-a.

    Si ze(A) vraća veličinu prvih N dimenzija niza A;

    D = veličina (A), za mxn matrica A vraća dvoelementni vektor reda u kojem je prva komponenta broj redova m, a druga komponenta broj kolona n;

    Veličina(A) vraća broj redova i stupaca u različitim tipovima izlaza (izlazi u MATLAB terminologiji).

Permutacije dimenzija niza

Ako multidimenzionalni niz predstavljamo kao stranice, onda je njihova permutacija permutacija dimenzija niza. Za dvodimenzionalni niz, permutacija često znači transpozicija- zamjena redova kolonama i obrnuto. Sljedeće karakteristike generalizirati transpoziciju matrica za slučaj višedimenzionalnih nizova i obezbijediti permutaciju dimenzija višedimenzionalnih nizova:

    Permute (A, ORDER) - preuređuje dimenzije niza A redoslijedom koji je određen permutacijskim vektorom ORDER. Vektor ORDER je jedna od mogućih permutacija svih cijelih brojeva od 1 do N, gdje N- dimenzija niza A;

    ipermuteCA, ORDER) - inverzno permute: permute(permute(A. ORDER), ORDER)=A

Slijede primjeri ovih funkcija i funkcije veličine:

» A=:

» B=;

» S=;

» D=mačka(3.A,B.C)

D(:,:,l) =

9 10

11 12

» veličina (D)

ans=

2 2 3

» veličina (permute(D.))

ans=

3 2 2

»veličina(ipermute(D.))

ans=

2 2 3

» ipermute(permute(D,),)

ans(:. :,2) =

ans(:.:,3) =

9 10

11 12

Pomicanje dimenzija nizova

Dimenzionalni pomak se implementira funkcijom shiftdim:

    B=shiftdim(X,N) - pomeranje dimenzija u nizu X za N. Ako je M>0, onda se pomeranje dimenzija koje se nalaze na desnoj strani vrši ulevo, a prvih N dimenzija sa leve strane se savijaju do kraja niza, tj. dimenzije se kreću u smjeru suprotnom od kazaljke na satu. Ako je M<0, сдвиг выполняется вправо, причем N первых размерностей, сдвинутых вправо, замещаются единичными размерностями;

    Shiftdim(X) Vraća niz B sa istim brojem elemenata kao i niz X, ali sa uklonjenim početnim dimenzijama jedinice. NSHIFTS izlaz pokazuje broj uklonjenih dimenzija. Ako je X skalar, funkcija ne mijenja X , V , NSHIFTS.

Sljedeći primjer ilustrira upotrebu funkcije shiftdim:

» 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

Uklanjanje dimenzija jedinice

Funkcija squeeze(A) vraća niz sa uklonjenim svim dimenzijama jedinica. Jedinična dimenzija je dimenzija u kojoj je veličina (A. dim) == 1. Ali ako

A je jednodimenzionalni ili dvodimenzionalni niz (matrica ili vektor), tada će funkcija vratiti isti niz A. Sljedeći primjer objašnjava kako squeeze funkcionira:

» A=randn(1.2.1.3.1):

» B=stisnuti (A)

0.6145 1.6924 -0.6436

0.5077 0.5913 0.3803

Imajte na umu da petodimenzionalni niz A postaje 2-dimenzionalni niz veličine 2x3.

Šta smo novo naučili?

U ovoj lekciji smo naučili:

    Kreirajte višedimenzionalne nizove.

    Koristite operator ":" u višedimenzionalnim nizovima.

    Pristup pojedinačnim elementima višedimenzionalnih nizova.

    Uklonite dimenzije iz višedimenzionalnog niza.

    Kreirajte nizove ispunjene konstantama i slučajnim brojevima.

    Izvršite spajanje niza.

    Izračunajte broj dimenzija niza i odredite veličinu svake dimenzije.

    Preuredite, pomaknite i uklonite pojedinačne dimenzije u višedimenzionalnim nizovima.

Nizovi su glavni objekti u sistemu MATLAB : samo u verzijama 4.xjednodimenzionalni nizovi- vektori - i dvodimenzionalni nizovi - matrice; u verziji 5.0 moguće je koristiti višedimenzionalne nizove - tenzore. U nastavku su opisane funkcije formiranja nizova i matrica, operacije na matricama, posebne matrice unutar sistema MATLAB verzije 4.x.

Formiranje nizova posebnog tipa

  • NULE - formiranje niza nula
  • ONES - formiranje niza jedinica
  • EYE - formiranje jedinstvene matrice
  • RAND - formiranje niza elemenata raspoređenih po jedinstvenom zakonu
  • RANDN - formiranje niza elemenata raspoređenih po normalnom zakonu
  • CROSS - vektorski proizvod
  • KRON - formiranje tenzorskog proizvoda
  • LINSPACE - formiranje linearnog niza jednako raspoređenih čvorova
  • LOGSPACE - formiranje čvorova logaritamske mreže
  • MESHGRID - formiranje čvorova dvodimenzionalnih i trodimenzionalnih mreža
  • : - formiranje vektora i podmatrica

Matrične operacije

  • DIJAG - formiranje ili izdvajanje dijagonala matrice
  • TRIL - formiranje donje trokutaste matrice (niza)
  • TRIU - formiranje gornje trokutaste matrice (niza)
  • FLIPLR - rotacija matrice oko vertikalne ose
  • FLIPUD - rotacija matrice u odnosu na horizontalnu osu
  • ROT90 - rotirajte matricu za 90 stepeni
  • PREOBLIKUJE - konverzija veličine matrice

Specijalne matrice

  • COMPAN je prateća matrica karakterističnog polinoma
  • HADAMARD - Adamardova matrica
  • HANKEL - Hankelova matrica
  • HILB, INVHILB - Hilbertova matrica
  • MAGIC - magični kvadrat
  • PASCAL - Pascal matrica
  • ROSSER - Rosserova matrica
  • TOEPLITZ - Toeplitz matrica
  • VANDER - Vandermonde matrica
  • WILKINSON - Wilkinsonova matrica

CONV, DECONV

Konvolucija jednodimenzionalnih nizova

sintaksa:

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

Opis:

Ako se da jednodimenzionalni nizovix i y dužine m = dužina(x) i n = dužina(y), respektivno, tada je konvolucija z jednodimenzionalni niz dužine m + n -1, čiji je k-ti element određen formula

Funkcija z = conv(x, y) izračunava konvoluciju z dva jednodimenzionalna niza x i y.

Uzimajući u obzir ove nizove kao uzorke dva signala, možemo formulirati teoremu konvolucije u sljedećem obliku:
Ako su X = fft() i Y = fft() Fourierove transformacije x i y signala konzistentne veličine, tada je conv(x, y) = ifft(X.*Y) istina.

Drugim riječima, konvolucija dva signala je ekvivalentna množenju Fourierovih transformacija ovih signala.

Funkcija = deconv(z, x) vrši inverznu konvoluciju. Ova operacija je ekvivalentna određivanju impulsnog odziva filtera. Ako je relacija z = conv(x, y) važeća, tada je q = y, r = 0.

Povezane karakteristike: Alat za obradu signala.

1. Korisnički priručnik kutije s alatima za obradu signala. Natick: The MathWorks, Inc., 1993.

Postavljanje šablona matrica i vektora (Matrix...)

Operacija Matrix... (Matrice) daje definiciju vektora ili matrica. Kao što znate, matrica je objekt dat svojim imenom u obliku niza podataka MathCAD koristi jednodimenzionalni nizovi- vektori i dvodimenzionalne - prave matrice

Matricu karakterizira broj redova (Rows) i broj stupaca (Columns). Dakle, broj elemenata matrice ili njena dimenzija jednak je redovima x kolonama Elementi matrice mogu biti brojevi, konstante, varijable, pa čak i matematički izrazi. Prema tome, matrice mogu biti numeričke i simboličke.

Ako koristite operaciju Matrix..., tada će se u trenutnom prozoru pojaviti mali prozor koji vam omogućava da postavite dimenziju vektora ili matrice (pogledajte sl. 515 desno).Da biste to uradili, morate odrediti broj redova Redovi i broj kolona Kolone Insert (Insert) u prozoru, možete ispisati matricu ili predložak vektora (vektor ima jedan od parametara dimenzije jednak 1)

Predložak sadrži zagrade i male tamne pravokutnike koji označavaju mjesta za unos vrijednosti (numeričkih ili znakovnih) za elemente vektora ili matrice. Jedan od pravougaonika se može učiniti aktivnim (označavanjem kursora miša). Istovremeno, leži u uglu. To znači da će se u njega unijeti vrijednosti odgovarajućeg elementa. Koristeći tastere sa strelicama, možete horizontalno skrolovati kroz sve pravougaonike i unositi sve elemente vektora ili matrice.


Rice. 5. 15 Izlaz predložaka vektora i matrice i njihovo popunjavanje

Dok se unose elementi vektora ili matrica, prikazuju se prazni šabloni bez ikakvih komentara. Međutim, ako završite sa unosom prije nego što se šabloni u potpunosti popune, sistem će prikazati poruku o grešci - prazan šablon će postati crven. Izlaz nepostojeće matrice ili pogrešna indikacija njenih indeksa je također prikazan crvenom bojom.

Ako koristite operaciju Umetanje (Uključivanje) s već izvedenim predloškom matrice, tada se matrica širi i povećava njena veličina. Dugme Delete (Erasing) vam omogućava da uklonite proširenje matrice brisanjem reda ili stupca iz nje.

Svaki element matrice karakterizira indeksirana varijabla, a njegova pozicija u matrici je označena s dva indeksa: jedan označava broj reda, drugi broj stupca. Za indeksirani skup varijable, prvo morate unijeti ime varijable, a zatim skočiti na skup indeksa pritiskom na tipku koja unosi znak]. Indeks reda je prvi naveden, a zatim indeks stupca, odvojen zarezima. Primjeri izlaza indeksiranih varijabli (elemenata matrice M) također su dati na sl. 5.14.

Matrica degenerirana u jedan red ili jedan stupac je vektor. Njegovi elementi su indeksirane varijable sa jednim indeksom. Donja granica indeksa je data vrijednošću sistemske varijable ORIGIN. Obično je njegova vrijednost postavljena na 0 ili 1.

Top Related Articles