Kako postaviti pametne telefone i računala. Informativni portal
  • Dom
  • Greške
  • Operacije s Matlab nizovima. Numerički nizovi

Operacije s Matlab nizovima. Numerički nizovi

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

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

drugi element niza postat će jednak aritmetičkoj sredini prvog i trećeg elementa. Pisanje nepostojećeg elementa potpuno je prihvatljivo - to znači dodavanje novog elementa u već postojeći niz:

Nakon izvođenja ove operacije, primjenom funkcije duljine na niz a1, nalazimo da se broj elemenata u nizu povećao na četiri:

» duljina(al) ans = 4

Ista radnja - "proširivanje niza a1" - može se izvesti pomoću operacije ulančavanja:

Niz možete definirati tako da sve njegove elemente zapišete zasebno:

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

Međutim, ova metoda stvaranja nije učinkovita.

Drugi način stvaranja jednodimenzionalnog niza temelji se na korištenju posebne funkcije, označene dvotočkom (operacija formiranja niza numeričkih vrijednosti). Odvojeno dvotočkom unesite prvi broj raspona, korak (inkrement) i konačni broj raspona. Na primjer:

" dijap=3,7:0,3:8,974;

Ako ne trebate prikazati cijeli rezultirajući niz, tada na kraju skupa (nakon posljednjeg broja raspona) trebate upisati točku i zarez. Da biste saznali koliko je elemenata u nizu, pozovite funkciju length(array name).

Za stvaranje dvodimenzionalni niz(matrice) također možete koristiti operaciju ulančavanja. Elementi niza skupljaju se jedan za drugim

12, ovisno o njihovom položaju u recima, kao razdjelnik retka koristi se točka-zarez.

Unesite s tipkovnice:

"a=

Pritisnite ENTER, dobivamo:

Rezultirajuća 3x2 matrica a (prvo je naznačen broj redaka, a zatim broj stupaca) također se može formirati vertikalnim ulančavanjem vektora reda:

» a=[;;];

ili horizontalno ulančavanje vektora stupaca:

» a=[,];

Struktura kreiranih nizova može se saznati pomoću naredbe whos(naziv niza), dimenzija niza - funkcijom ndims, a veličina niza - size.

Dvodimenzionalni nizovi također se mogu definirati pomoću operacije indeksiranja, registrirajući njegove elemente pojedinačno. Naveden je broj retka i stupca na čijem se sjecištu nalazi navedeni element niza, odvojen 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, bit će mnogo učinkovitije ako, prije nego počnete pisati elemente niza, napravite niz pravu veličinu funkcije jedinice (m,n) ili nule(m,n), ispunjene jedinicama ili nulama (m – broj redaka, n – broj stupaca). Kada se te funkcije pozovu, memorija se unaprijed dodjeljuje za zadana veličina niz, nakon čega dolazi do postupnog upisivanja elemenata s potrebnim

13 vrijednosti ne zahtijevaju restrukturiranje strukture memorije dodijeljene za niz.

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

Ako nakon formiranja niza X trebate promijeniti njegove dimenzije bez mijenjanja elemenata niza, možete koristiti funkciju preoblikovanja (X, M, N), gdje su M i N nove veličine niza X.

Rad ove funkcije može se objasniti samo na temelju načina na koji sustav MATLAB pohranjuje elemente niza u memoriju računala. Pohranjuje ih u kontinuirano memorijsko područje, poredano po stupcima: prvi se nalaze elementi prvog stupca, zatim elementi drugog stupca, itd. Osim samih podataka (elemenata niza), memorija računala također pohranjuje kontrolne informacije: vrsta niza (na primjer, dvostruko), dimenzija i veličina niza, ostale servisne informacije. Ovi podaci dovoljni su za određivanje granica stupaca. Iz toga slijedi da je za preoblikovanje matrice s funkcijom reshape dovoljno samo promijeniti službene informacije i ne dirajte svoje podatke.

Možete zamijeniti retke matrice s njezinim stupcima pomoću operacije prijenosa, što je označeno znakom." (točka i apostrof). Na primjer,

"A=;

"B=A."

Operacija " (apostrof) izvodi transpoziciju za realne matrice i transpoziciju s istovremenom kompleksnom konjugacijom za složene matrice.

Objekti s kojima MATLAB radi su nizovi. Čak je i jedan dati broj u MATLAB-ovoj internoj reprezentaciji niz,

koji se sastoji od jednog elementa. MATLAB vam omogućuje izračune s ogromnim nizovima brojeva jednako lako kao i s pojedinačnim brojevima, a ovo je jedan od najuočljivijih i važne prednosti MATLAB sustavi nad ostalima programski paketi orijentiran na računalstvo i programiranje. Uz memoriju potrebnu 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 stvaranja polja.

Izračuni polja

U tradicionalnim programskim jezicima, izračuni niza rade se element po element, u smislu da morate programirati svaku pojedinačnu operaciju na zasebnom elementu niza. M-jezik MATLAB sustava omogućuje moćne grupne operacije na cijelom polju odjednom. Upravo grupne operacije sustava MATLAB omogućuju iznimno kompaktno definiranje izraza čije izračun zapravo uključuje ogroman posao.

Operacije zbrajanja i oduzimanja matrica (koje su vam poznate iz linearne algebre) označene su standardnim znakovima + i -.

Navedite matrice A i B i izvedite operaciju zbrajanja matrica:

» A=; B=;

» A+B

Ako se koriste operandi različite veličine, izdaje se poruka o pogrešci osim ako jedan od operanda nije skalar. Prilikom izvođenja operacije A + skalar (A – matrica), sustav će proširiti skalar na niz veličine A, koji se zatim dodaje element po element s A.

15 Za elementno množenje i elementno dijeljenje nizova

iste veličine, kao i elementno potenciranje nizova, koriste se operacije koje se označavaju kombinacijama dva simbola: .*, ./ i

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

Osim operacije./, koja se naziva operacija desnog elementnog dijeljenja, postoji i operacija lijevog elementnog dijeljenja.\. Objasnimo razliku između

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

Znak * dodijeljen je množenju matrica i vektora u smislu linearne algebre.

Rješenju se u MATLAB-u dodjeljuje znak \. težak zadatak linearna algebra – pronalaženje korijena sustava linearnih jednadžbi. Na primjer, ako trebate riješiti sustav linearnih jednadžbi

gdje je A zadana kvadratna matrica veličine N x N, b je zadani vektor stupac duljine 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 nalaženje duljina vektora i kutova između njih, uz izračun skalarnih i vektorskih umnožaka, lako se rješavaju različitim sredstvima sustava MATLAB. Na primjer, da biste pronašli vektorski produkt vektora, koristite posebna funkcija križ, na primjer:

"u=; v=;

» križ(u,v)

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

zbroj opće namjene, koji izračunava zbroj svih elemenata vektora (za matrice, ova funkcija izračunava zbrojeve za sve stupce). Skalarni umnožak, kao što je poznato, jednak je zbroju umnožaka odgovarajućih koordinata (elemenata) vektora. Dakle izraz:

izračunava skalarni produkt dva vektora u i v. Točkasti umnožak također se može izračunati kao: u*v′.

Duljina vektora izračunava se pomoću točkastog produkta i funkcije kvadratnog korijena, na primjer:

» sqrt(zbroj(u.*u))

Relacijske operacije prethodno razmatrane za skalare i logičke operacije U slučaju nizova, oni se izvode element po element. Oba operanda moraju biti iste veličine da bi operacija vratila rezultat iste veličine. U slučaju kada je jedan od operanda skalar, vrši se njegovo prethodno proširenje, čije je značenje već objašnjeno na primjeru aritmetičkih operacija.

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

generira 3x3 niz slučajnih brojeva s elementima ravnomjerno raspoređenim u intervalu od 0 do 1.

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

Determinanta kvadratna matrica izračunato pomoću funkcije det. Među funkcijama koje izvode jednostavne izračune na nizovima su

pored navedenog funkcije zbroja, spomenimo i funkciju prod koja je u svemu slična funkciji zbroja, samo što ne računa zbroj elemenata, već njihov umnožak. Funkcije max i min traže maksimalne, odnosno minimalne elemente nizova. Za vektore vraćaju jedan numerička vrijednost, a za matrice generiraju skup ekstremnih elemenata izračunatih za svaki stupac. Funkcija sortira elemente jednodimenzionalnih nizova uzlaznim redoslijedom, a za matrice takvo sortiranje izvodi za svaki stupac zasebno.

Na kraju, razmotrimo jedinstvena prilika M-jezik sustava MATLAB za izvođenje grupnih izračuna na nizovima koristeći obične matematičke funkcije, koji u tradicionalnim programskim jezicima rade samo sa skalarnim argumentima. Kao rezultat toga, uz pomoć izuzetno kompaktnih unosa koji su prikladni za unos s tipkovnice u interaktivni način rada Raditi sa naredbeni prozor MATLAB sustavima, moguće je izvesti veliku količinu izračuna. Na primjer, samo dva kratki izrazi

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

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

Crtanje grafova funkcija

MATLAB-ove grafičke mogućnosti su moćne i raznolike. Istražimo značajke najjednostavnije za korištenje (grafika visoke razine).

Formirajte dva vektora x i y:

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

Pozovite funkciju:

» iscrtaj(x,y)

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

Riža. 1. Graf funkcije y=sin(x)

MATLAB pokazuje grafički objekti u posebnim grafičkim prozorima s riječju Slika u naslovu.

Bez uklanjanja prvog grafičkog prozora sa zaslona, ​​unesite izraze s tipkovnice

» z=cos(x);

» iscrtaj(x,z)

i dobiti novi raspored funkcije u istom grafičkom prozoru (u ovom slučaju stare koordinatne osi i graf nestaju - to se također može postići naredbom clf; naredba cla briše samo graf s koordinatnim osima dovedenim na svoje 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 hold on, koja je dizajnirana da drži trenutni grafički prozor:

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

» iscrtaj(x,y)

» z=cos(x);

"drži se"

» iscrtaj(x,z)

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

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

» nacrtaj(x,y,x,z)

Riža. 2. Grafovi funkcija y=sin(x), z=cos(x), iscrtani u jednom grafičkom prozoru

Ako trebate istovremeno vizualizirati nekoliko grafikona tako da ne ometaju jedan drugoga, to možete učiniti na dva načina. Prvo rješenje je iscrtati ih u različitim grafičkim prozorima. Da biste to učinili, prije ponovnog pozivanja funkcije crtanja, upišite naredbu figure, koja stvara 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 sukobljenih raspona osi je korištenje funkcije podcrteža. Ova funkcija omogućuje

20et podijeli izlazno područje grafičke informacije u nekoliko potpodručja,

U svakom od njih možete prikazati grafikone različitih funkcija.

Na primjer, za prethodno izvedene izračune s funkcijama sin i cos, iscrtajte ove dvije funkcije u prvom podpodručju, a iscrtajte funkciju exp(x) u drugoj poddomeni istog grafičkog prozora (Sl. 3):

"w=exp(x);

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

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

Riža. 3. Grafikoni funkcija y=sin(x), z=cos(x) i w=exp(x), iscrtani u dva podpodručja jednog grafičkog prozora

Rasponi promjene varijabli na koordinatnim osima ovih podregija međusobno su neovisni. Funkcija subplot uzima tri numerička argumenta, od kojih je prvi jednak broju redaka potpodručja, drugi je jednak broju stupaca potpodručja, a treći argument je broj potpodručja (broj se broji

Indeksi. Element niza A koji se nalazi na sjecištu retka i i stupca 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 sjecištu retka 4 i stupca 3, jednak 15.

Također možete izračunati zbroj elemenata četvrtog stupca

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čajeni način za označavanje elemenata vektora. Ali također se možete pozvati na elemente dvodimenzionalnog niza, u kojem slučaju se niz tretira kao jedan dugi vektor stupca formiran od stupaca izvornog 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 pogrešku:

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

Ako dodijelite vrijednost elementu s indeksima izvan niza, tada MATLAB 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

Odabir podblokova niza. Ako koristite dvotočku u izrazima indeksa, možete se pozvati na podblokove niza. Stoga se indeksni izraz A(1:k, j) odnosi na blok od k elemenata u stupcu j.

Primjer:

A(1:4,3)
ans =

3
10
6
15

Ovdje je istaknut stupac 3 magične (4) matrice.

Operater

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

izračunava zbroj elemenata stupca 3.

Međutim, postoji bolji način. Budući da se sama dvotočka odnosi na sve elemente retka ili stupca, konačni zbroj može se izračunati ovako:

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

Osim toga, od verzije 5.0, posljednji redak ili stupac niza može se referencirati pomoću ključna riječ kraj. Dakle operater

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

izračunava zbroj elemenata u zadnjem stupcu matrice A.

Kombiniranje podblokova u niz. Operacija kombiniranja pojedinačnih podblokova u niz naziva se ulančavanje. Čak i pri formiranju izvorne matrice, kada se pojedinačni elementi kombiniraju, operacija ulančavanja je par uglatih zagrada unutar kojih su naznačeni pojedinačni elementi ili blokovi niza.

Primjer.
Koristeći matricu A jednaku magic(4), stvaramo 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 polovica drugog magičnog kvadrata čiji su elementi u rasponu cijelih brojeva 1:64. Zbrojevi stupaca već imaju ispravna vrijednost za magični kvadrat veličine 8x8:

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

Međutim, zbroj redova

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

nimalo isto.

Pokušajte pronaći one permutacije elemenata koje vode matricu B do pravog magičnog kvadrata reda 8.

Uklanjanje redaka i stupaca. Koristeći koncept praznog niza, retci, stupci i cijeli podblokovi mogu se jednostavno izbrisati.

Recimo

X = A
X =

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

Da biste uklonili drugi stupac niza X, samo upotrijebite operator

X (:, 2) =
X =

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

Prilikom pokušaja rješavanja jednog elementa niza dolazi do pogreške jer rezultat nije niz:

X (1, ​​​​2) =
??? Dodjeljivanje indeksirane prazne matrice nije dopušteno.
Dodjeljivanje prazne matrice indeksnom izrazu je zabranjeno
.

Međutim, korištenje jednog indeksa omogućuje vam uklanjanje jednog elementa ili niza elemenata i pretvaranje preostalih elemenata u vektor retka.

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čajena praksa pohraniti svaki niz, bez obzira na njegovu dimenziju, kao vektor stupca. Ovaj vektor se formira kombiniranjem (ulančavanjem) stupaca izvornog niza.

Primjer.
MATLAB sustav pohranjuje niz A

A=

kao sljedeći vektor stupca

2
4
3
6
2
0
9
8
1

Kada se nizu A pristupa s jednim indeksom, ovom se vektoru stupca izravno pristupa. Preporuka A(3) odnosi se na treću vrijednost u stupcu; A(7) - do sedmog i tako dalje.

Ako je broj indeksa niza veći od 1, tada MATLAB izračunava indeks na stupcu za pohranu koristeći vrijednosti dimenzija niza. Ako dvodimenzionalni niz A ima veličinu, gdje je d1 broj redaka, a d2 broj stupaca, tada je za element s 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 pohrane (2-1)*3+3 = 6. Element broj 6 ima vrijednost 0.
Ova metoda pohranjivanja i shema indeksa također se primjenjuju na višedimenzionalne nizove. U ovom slučaju MATLAB koristi shemu straničenja za stvaranje stupca za pohranu.
Korištenje jednog indeksa rezultira izravna žalba na skladišni vektor.
Ako su dana dva indeksa (i, j), tada MATLAB izračunava položaj na isti način kao što je gore opisano, samo za prvu stranicu višedimenzionalnog niza i pod uvjetom da su ti indeksi unutar raspona dimenzija originalnog niza.
Ako je navedeno više od dva indeksa, shema indeksiranja postaje složenija. Ako su dana četiri indeksa (i, j, k, l) za četverodimenzionalni niz veličine d1xd2xd3xd4, tada se položaj elementa u skladišnom vektoru 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 položaj elementa u vektoru pohrane koji odgovara elementu (j1 j2 ... jn-1 jn) n-dimenzionalnog niza veličine d1xd2xd3x ... xdn, ima oblik
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 pohrane.

Izlaz na zaslonu 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

svi MatLab podaci predstavljeni kao nizovi. Vrlo je važno pravilno razumjeti kako koristiti nizove. Bez ovoga je nemoguće učinkovit rad u MatLabu, posebno crtanje, rješavanje problema linearne algebre, obrada podataka, statistika i mnogi drugi. Ovaj pododjeljak opisuje izračune s vektorima.

Niz je uređena, numerirana zbirka homogenih podataka. Niz mora imati ime. Nizovi se razlikuju po broju dimenzija ili dimenzija: jednodimenzionalni, dvodimenzionalni, višedimenzionalni. Elementima se pristupa pomoću indeksa. U MatLabu, numeriranje 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 objekti, a jednodimenzionalni, dvodimenzionalni ili višedimenzionalni nizovi su načini pohranjivanja tih objekata u računalu. U daljnjem tekstu riječi vektor i matrica koristit će se ako je sam objekt od većeg interesa od načina pohranjivanja. Vektor se može napisati u stupcu (column vector) ili u redu (row vector). Vektori stupaca i vektori reda često će se nazivati ​​jednostavno vektori, razlika koja se pravi u slučajevima kada je način na koji je vektor pohranjen u MatLabu važan. Vektori i matrice označeni su kurzivom, a njihovi odgovarajući nizovi označeni su ravnim monospace fontom, na primjer: "vektor A sadržano u nizu a", "upisati matricu R u niz r".

Unos zbrajanja i oduzimanja vektora

Počnimo raditi s nizovima s jednostavan primjer- izračun zbroja vektora:
, .

Za pohranu vektora koristite nizove a i b. Unesite niz a u naredbeni redak korištenjem uglate zagrade i odvajanje elemenata vektora točkom i zarezom:

" a =
a =
1.3000
5.4000
6.9000

Budući da se uneseni izraz ne završava točkom i zarezom, onda MatLab paket automatski prikazuje vrijednost varijable a. Unesite sada drugi vektor, potiskujući izlaz na ekran

" b = ;

Da biste pronašli zbroj vektora, koristite znak +. Izračunajte zbroj, zapišite rezultat u niz c i prikažite njegove elemente u naredbenom prozoru:

» c = a + b
c =
8.4000
8.9000
15.1000

Saznajte dimenziju i veličinu polja a pomoću ugrađenih funkcija ndims i size:

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

Dakle, vektor A pohranjuje se u dvodimenzionalnom nizu dimenzija tri po jedan (vektor stupca od tri retka i jednog stupca). Slične operacije mogu se izvesti za nizove b I c. Budući da su brojevi u MatLabu predstavljeni kao dvodimenzionalni niz jedan po jedan, zbrajanje vektora koristi isti znak plus kao i zbrajanje brojeva.

Vektor retka unosi se u uglate zagrade, ali elementi moraju biti odvojeni razmacima ili zarezima. Operacije zbrajanja, oduzimanja i računanja elementarnih funkcija iz vektora retka izvode se na isti način kao i s vektorima stupaca, što rezultira vektorom retka iste veličine kao i izvorni. 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 zbrajanje ili oduzimanje ne podudaraju, generira se poruka o pogrešci.

Naravno, da biste pronašli razliku između vektora, trebali biste koristiti znak minus; s množenjem je situacija nešto složenija.
Unesite dva vektora reda:

» v1 = ;
» v2 = ;

Operacija.* (ne stavljajte razmak između točke i zvjezdice!) rezultira množenjem vektora iste duljine element po element. Rezultat je vektor s elementima jednakim umnošku odgovarajućih elemenata izvornih vektora:

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

Koristeći.^, vrši se stepenovanje element po element:

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

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

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

Dijeljenje odgovarajućih elemenata vektora iste duljine vrši se operacijom./

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

Obrnuto elementno dijeljenje (dijeljenje elemenata drugog vektora na odgovarajuće elemente prvog) provodi se operacijom.\

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

Dakle, točka se u MatLabu koristi ne samo za unos decimalnih razlomaka, već i za označavanje da dijeljenje ili množenje nizova iste veličine treba učiniti po elementima.
Elementne operacije također uključuju vektorske i brojevne operacije. Dodavanje vektora i broja ne rezultira porukom o pogrešci. MatLab dodaje broj svakom elementu vektora. Isto vrijedi 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

Vektor možete pomnožiti brojem s desne i s lijeve strane:

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

Vektor možete podijeliti brojem pomoću znaka /:

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

Pokušaj dijeljenja broja vektorom rezultira porukom pogreške:

» p = 2/v
??? Pogreška pri korištenju ==> /
Dimenzije matrice se moraju slagati.

Ako trebate podijeliti broj sa svakim elementom vektora i zapisati rezultat 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 retka i na vektore stupca.
MatLabova značajka predstavljanja svih podataka kao nizova vrlo je zgodna. Neka, na primjer, trebate izračunati vrijednost funkcije sin za sve elemente vektora odjednom S(koji je pohranjen u nizu c) i zapišite rezultat u vektor d. Da bismo dobili vektor d dovoljno je koristiti jedan operator dodjele:

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

Dakle, ugrađeno u MatLab elementarne funkcije prilagoditi se 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 izvornog niza. Pogledajte ovo s još jednim primjerom. Ako trebate pronaći Korijen od vektorskih elemenata d sa predznakom minus, tada je dovoljno napisati:

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

Operator dodjele nije korišten, pa je MatLab napisao odgovor na standardnu ​​varijablu ans.

Za određivanje duljine vektora stupca ili vektora retka upotrijebite ugrađenu funkciju duljine:

» duljina (s1)
ans =
4

Od nekoliko vektora stupaca možete stvoriti jedan koristeći uglate zagrade i odvajajući izvorne vektore stupaca točkom i zarezom:

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

Uglate zagrade također se koriste za ulančavanje vektora reda, ali su spojeni vektori reda odvojeni razmacima ili zarezima:

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

Rad s vektorskim elementima

Elementima vektora stupca ili vektora retka pristupa se pomoću indeksa zatvorenog u okrugle zagrade iza imena niza u kojem je vektor pohranjen. Ako se među varijablama radno okruženje postoji niz v definiran vektorom retka

» v = ;

zatim za izlaz, na primjer, njegovog četvrtog elementa, koristite indeksiranje:

» v(4)
ans =
8.2000

Pojava elementa niza na lijevoj strani operatora dodjele uzrokuje promjenu u nizu

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

Na primjer, možete oblikovati nove nizove od elemenata niza

" u =
u =
7.4000
555.0000
1.3000

Za postavljanje određenih elemenata vektora u drugi vektor zadanim redoslijedom, koristite indeksiranje pomoću vektora. Zapisivanje u niz wčetvrti, drugi i peti element v radi se na sljedeći način:

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

MatLab pruža prikladan način pristup blokovima sekvencijalnih elemenata vektora stupca ili vektora reda. U tu svrhu koristi se indeksiranje pomoću znaka dvotočke. Pretpostavimo da u nizu w, koji odgovara vektoru retka od sedam elemenata, morate elemente od drugog do šestog zamijeniti nulama. Indeksiranje pomoću dvotočke omogućuje jednostavno i jasno rješavanje problema:

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

Dodjeljivanje w(2:6) = 0 je ekvivalentno nizu naredbi
w(2) = 0; w(3)=0; w(4)=0; w(5)=0; w(6)=0.
Indeksiranje s dvotočkom prikladno je pri odabiru dijela velike količine podataka novi niz:

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

Konstruirajte niz w2 koji sadrži elemente w osim četvrtog. U ovom slučaju prikladno je koristiti dvotočku i spajanje nizova:

" w2 =
w2 =
0.1000 2.9000 3.3000 2.6000 7.1000 9.8000

Elementi polja mogu biti uključeni u izraze. Određivanje, na primjer, geometrijske sredine elemenata niza u, može se učiniti na sljedeći način:

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

Naravno, ova metoda nije baš prikladna za duge nizove. Da biste pronašli geometrijsku sredinu, morate unijeti sve elemente niza u formulu. MatLab ima mnoge posebne funkcije koje olakšavaju takve izračune.

Primjena funkcija obrade podataka na vektore

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

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

Funkcija zbroja dizajnirana je za zbrajanje elemenata vektora. Koristeći ga, lako je izračunati aritmetičku sredinu elemenata vektora z:

» zbroj(z)/duljina(z)
ans =
3.5000

MatLab također ima posebnu funkciju mean za izračunavanje aritmetičke sredine:

"znači(z)
ans =
3.5000

Za određivanje minimum i maksimum elemenata vektora Koriste se 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 bit će dodijeljena vrijednost minimalni element niz z, a broj minimalnog elementa upisuje se u varijablu k.
Za informacije o na razne načine Za korištenje funkcija upišite pomoć i naziv funkcije u naredbeni redak. MatLab će ispisati u naredbeni prozor svakakve načine pozive na funkciju uz dodatna objašnjenja.
Glavne funkcije za rad s vektorima uključuju funkciju sortiranja za poredak vektora u rastućem redoslijedu njegovih elemenata.

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

Možete sortirati vektor silaznim redoslijedom pomoću istog funkcija sortiranja:

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

Redoslijed elemenata uzlaznim redoslijedom njihovih modula vrši se pomoću funkcije abs:

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

Pozivanje sortiranja s dva izlazna argumenta proizvodi niz indeksa odgovarajućih elemenata uređenog 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 #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 polju

    Stvaranje stranica ispunjenih konstantama i slučajni brojevi

    Kombiniranje nizova

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

    Permutacije dimenzija polja

    Pomak dimenzija polja

    Uklanjanje dimenzija jedinice

U ovoj lekciji ćemo se dotaknuti pitanja vezanih uz 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 karakteriziraju dimenzije veće od dvije. Takvim se nizovima može dati vizualna interpretacija. Tako se matrica (dvodimenzionalni niz) može napisati na jednom listu papira u obliku redaka i stupaca koji se sastoje od elemenata matrice. Tada se bilježnica s takvim listovima papira može smatrati trodimenzionalnim nizom, polica u ormaru s bilježnicama može se smatrati četverodimenzionalnim nizom, ormar s mnogo polica može se smatrati petodimenzionalnim nizom, itd. U Ova se knjiga gotovo nigdje, osim u ovom odjeljku, neće baviti nizovima čija je dimenzija veća od dvije, ali ipak je korisno znati o mogućnostima MATLAB-a u smislu specificiranja i korištenja višedimenzionalnih nizova.

U našoj literaturi pojmovi “veličina” i “dimenzija” nizova gotovo su sinonimi. Međutim, oni imaju jasno različita značenja u ovoj knjizi iu MATLAB dokumentaciji i literaturi. Pod, ispod dimenzija nizovi se odnose na broj dimenzija u prostornom prikazu nizova, a po veličina - broj redaka i stupaca (mxn) u svakoj dimenziji polja.

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

Kod normalnog specificiranja nizova (koristeći točku i zarez ";"), broj redaka (linija) niza je za 1 veći od broja znakova ":", ali niz ostaje dvodimenzionalan. Operator ":" (dvotočka) olakšava izvođenje operacija za povećanje veličine nizova. Navedimo primjer formiranja trodimenzionalnog niza zbrajanjem nova stranica. Neka nam je dan početni dvodimenzionalni niz M veličine 3x3:

» M=

M =

1 2 3

4 5 6

7 8 9

Za dodavanje nove stranice 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 što 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) označavaju broj stranice.

Pristup pojedinom elementu višedimenzionalnog niza

Da biste pozvali središnji element prvo prve, a zatim druge stranice, morate napisati sljedeće izraze:

» M(2.2,1)

Odgovor =

» MS2.2.2)

Odgovor =

Dakle, višedimenzionalni nizovi koriste ista pravila indeksiranja kao i jednodimenzionalni i dvodimenzionalni nizovi. Proizvoljni element, na primjer, trodimenzionalnog niza je specificiran kao M(1 .j.k), gdje je 1 broj retka, j je broj stupca i k je broj stranice. Ovaj element se može prikazati ili mu se dodijeliti postavljena vrijednost x: M(1,j,k)=x.

Uklanjanje dimenzije u višedimenzionalnom polju

Već smo primijetili mogućnost brisanja pojedinačnih stupaca dodjeljivanjem vrijednosti praznog vektora stupca. Ovu tehniku ​​lako je proširiti na stranice i, općenito, na dimenzije višedimenzionalnog niza. Na primjer, prva stranica rezultirajućeg niza M može se izbrisati 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 se dimenzija niza smanjila za 1 - postao je dvodimenzionalan.

Stvaranje stranica ispunjenih konstantama i nasumičnim brojevima

Ako postoji numerička konstanta iza znaka dodjele, tada će odgovarajući dio niza sadržavati elemente koji sadrže tu konstantu. Na primjer, stvorimo iz niza M (vidi primjer iznad) niz č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 s 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 (stvaranje nizova s ​​jediničnim elementima), nule (stvaranje nizova s ​​nula elemenata) i rand ili randn (stvaranje nizova s ​​elementima - nasumični brojevi s uniformnom odnosno normalnom distribucijom) također se mogu koristiti za stvaranje višedimenzionalnih nizova. Primjeri su navedeni 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čiti i ne zahtijevaju posebne komentare. Međutim, imajte na umu da je lako odrediti veličine polja 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-bu-3-bu-3-sa-0

Kako se vidi iz ovaj primjer, prazan niz se vraća s odgovarajućim komentarom.

Kombiniranje nizova

Za stvaranje višedimenzionalnih nizova upotrijebite posebnu funkciju ulančavanja cat, opisanu ranije za matrice:

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

    cat(2.A.B) - vraća niz [A.B], u kojem su redovi kombinirani (horizontalno ulančavanje);

    cat(1, A.V) - vraća niz [A:B], u kojem su stupci kombinirani (vertikalno ulančavanje);

    B=cat(DIM.Al,A2,...) - kombinira višestruke ulazne nizove Al, A2,... duž DIM dimenzije.

Funkcije cat(DIM,C(:)) i cat(DIM.C.FIELD) pružaju ulančavanje (spajanje) ćelija niza ćelija (vidi lekciju 15) ili strukture niza struktura (vidi lekciju 14) koje sadrže numeričke matrice u jednu matricu. Slijede primjeri korištenja funkcije cat:

» M1=

» M2=

M2 =

» catd.Ml.M2)

Odgovor =

5 B

» mačka(2.Ml.M2)

ans=

1 2 5 6

3 4 7 8

» M-mačka(3.Ml.M2) M(:,:.l) =

M(:,:,2) =

Rad s dimenzijama

Izračunavanje broja dimenzija niza

Funkcija ndims(A) vraća veličinu niza A (ako je veća ili jednaka dva). Ali ako je ulazni argument Java polje ili polje Java polja, tada će bez obzira na veličinu polja ova funkcija vratiti 2. Sljedeći primjer ilustrira upotrebu funkcije ndims:

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

» ndims(M)

Odgovor =

4
Izračunavanje veličine dimenzije niza

Za izračun veličine svake dimenzije niza upotrijebite funkciju veličine:

    M = size(A.DIM) vraća veličinu dimenzije specificirane DIM skalarom kao vektor retka veličine 2. Za dvodimenzionalni ili jednodimenzionalni niz A, size(A.l) vraća broj redaka, a size(A, 2) vraća broj stupaca;

Za N-dimenzionalne nizove A s n>2 size(A) vraća N-dimenzionalni vektor retka koji odražava organizaciju stranice niza, zadnja komponenta ovog vektora jednaka je N. Vektor ne sadrži podatke o jediničnim dimenzijama ( one gdje je vektor retka ili vektor stupca, tj. size(A,DIM)==l). Izuzetak su N-dimenzionalni nizovi Java polja javaarray, koji vraća veličinu niza najviše razine.

Općenito, kada je veličina ulaznog argumenta javaarray, vraćeni broj stupaca uvijek je 1, a broj redaka (redova) jednak je veličini (duljini) javaarraya.

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

    D = veličina (A), za mxn matricu A vraća vektor retka od dva elementa u kojem je prva komponenta broj redaka m, a druga komponenta broj stupaca n;

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

Permutacije dimenzija polja

Ako višedimenzionalni niz zamislimo u obliku stranica, onda je njihova permutacija permutacija dimenzija niza. Za dvodimenzionalni niz, permutacija često znači transpozicija- zamjena redaka stupcima i obrnuto. Sljedeće funkcije generalizira transpoziciju matrice za slučaj višedimenzionalnih nizova i osigurava permutaciju dimenzija višedimenzionalnih nizova:

    Permutiraj (A, ORDER) - preuređuje dimenzije niza A u redoslijedu određenom vektorom permutacije ORDER. Vektor ORDER je jedna od mogućih permutacija svih cijelih brojeva od 1 do N, Gdje N- dimenzija polja A;

    ipermuteCA, ORDER) - inverzna operacija permute: permute(permute(A. ORDER), ORDER)=A

Slijede primjeri korištenja ovih funkcija i funkcije veličine:

"A=:

"B=;

» C=;

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

D(:,:,l) =

9 10

11 12

"veličina (D)

Odgovor =

2 2 3

» veličina(permute(D.))

ans=

3 2 2

»veličina(ipermute(D.))

Odgovor=

2 2 3

» ipermute(permute(D,),)

Ans(:. :,2) =

ans(:.:,3) =

9 10

11 12

Pomak dimenzija polja

Pomak dimenzija implementiran je funkcijom shiftdim:

    B=shiftdim(X,N) - pomak dimenzija u nizu X za iznos N. Ako je M>0, tada se vrši pomak dimenzija koje se nalaze desno ulijevo, a N dimenzija prvih lijevo se skupljena do kraja niza, tj. dimenzije se kreću kružno u smjeru suprotnom od kazaljke na satu. Ako je M<0, сдвиг выполняется вправо, причем N первых размерностей, сдвинутых вправо, замещаются единичными размерностями;

    Shiftdim(X) - Vraća niz B s istim brojem elemenata kao niz X, ali s uklonjenim početnim dimenzijama jedinice. Izlazni parametar NSHIFTS pokazuje broj uklonjenih dimenzija. Ako je X skalar, funkcija ne mijenja X, B, 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 jedinice. Dimenzija u kojoj je size(A. dim) == 1 naziva se jedinica

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

» A=randn(1.2.1.3.1):

"B=stisnuti (A)

0.6145 1.6924 -0.6436

0.5077 0.5913 0.3803

Primijetite da petodimenzionalni niz A postaje dvodimenzionalni niz veličine 2x3.

Što smo novo naučili?

U ovoj lekciji smo naučili:

    Stvorite višedimenzionalne nizove.

    Koristite operator “:” u višedimenzionalnim nizovima.

    Pristup pojedinačnim elementima višedimenzionalnih nizova.

    Uklonite dimenzije iz višedimenzionalnog niza.

    Stvorite nizove ispunjene konstantama i nasumičnim brojevima.

    Ulančavanje nizova.

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

    Preuređivanje, pomicanje i brisanje dimenzija jedinica u višedimenzionalnim nizovima.

Nizovi su glavni objekti u sustavu MATLAB : dopušteno 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 opisujemo funkcije formiranja nizova i matrica, operacije na matricama, posebne matrice unutar sustava MATLAB verzije 4.x.

Formiranje nizova posebnog tipa

  • NULE - formiranje niza nula
  • JEDNE - formiranje niza jedinica
  • OKO - formiranje jedinične matrice
  • RAND - formiranje niza elemenata raspoređenih prema jedinstvenom zakonu
  • RANDN - formiranje niza elemenata raspoređenih prema normalnom zakonu
  • KRIŽ - vektorski proizvod
  • KRON - formiranje tenzorskog umnoška
  • LINSPACE - formiranje linearnog niza jednako razmaknutih čvorova
  • LOG PROSTOR - formiranje čvorova logaritamske mreže
  • MESHGRID - formiranje čvorova dvodimenzionalnih i trodimenzionalnih mreža
  • : - formiranje vektora i submatrica

Operacije na matricama

  • DIJAG - formiranje ili izdvajanje matričnih dijagonala
  • TRIL - formiranje donje trokutaste matrice (niza)
  • TRIU - formiranje gornje trokutaste matrice (niza)
  • FLIPLR - rotacija matrice u odnosu na okomitu os
  • FLIPUD - rotacija matrice u odnosu na horizontalnu os
  • ROT90 - rotacija matrice 90 stupnjeva
  • PREOBLIKUJ - pretvorba veličine matrice

Specijalne matrice

  • KOMPAN - popratna matrica karakterističnog polinoma
  • HADAMARD - Hadamardova matrica
  • HANKEL - Hankelova matrica
  • HILB, INVHILB - Hilbertova matrica
  • MAGIJA - magični kvadrat
  • PASCAL - Pascal matrica
  • ROSSER - Rosserova matrica
  • TOEPLITZ - Toeplitz matrica
  • VANDER - Vandermondeova matrica
  • WILKINSON - Wilkinsonova matrica

KONV., DEKONV

Konvolucija jednodimenzionalnih nizova

Sintaksa:

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

Opis:

Ako je navedeno jednodimenzionalni nizovix i y su duljine m = duljina(x) odnosno n = duljina(y), tada je konvolucija z jednodimenzionalni niz duljine m + n -1, čiji je k-ti element određen formulom

Funkcija z = conv(x, y) izračunava konvoluciju z dvaju jednodimenzionalnih nizova x i y.

Uzimajući u obzir ove nizove kao uzorke dvaju signala, možemo formulirati teorem o konvoluciji u sljedećem obliku:
Ako su X = fft() i Y = fft() Fourierove transformacije signala x i y usklađene veličine, tada je relacija conv(x, y) = ifft(X.*Y) važeća.

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

Funkcija = deconv(z, x) izvodi inverznu operaciju konvolucije. Ova operacija je ekvivalentna određivanju impulsnog odziva filtra. Ako je relacija z = conv(x, y) istinita, tada je q = y, r = 0.

Povezane značajke: Alat za obradu signala.

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

Postavljanje predloška matrica i vektora (Matrix...)

Operacija Matrica... daje definiciju vektora ili matrica. Kao što je poznato, matrica je objekt određen svojim imenom u obliku niza podataka MathCAD koristi jednodimenzionalni nizovivektori i same dvodimenzionalne matrice

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

Ako koristite operaciju Matrica..., tada će se u trenutnom prozoru pojaviti mali prozor koji vam omogućuje da postavite dimenziju vektora ili matrice (pogledajte sliku 515 s desne strane, morate navesti). broj redaka redaka i broj stupaca stupaca Pritiskom na tipku Enter ili postavljanjem pokazivača miša na sliku tipke Insert u prozoru možete prikazati predložak matrice ili vektora (vektor ima jedan od parametara dimenzije jednak 1)

Predložak sadrži rubne zagrade i male tamne pravokutnike koji označavaju gdje možete unijeti vrijednosti (numeričke ili znakovne) za elemente vektora ili matrice. Jedan od pravokutnika se može učiniti aktivnim (označavanjem kursorom miša). Istodobno je zatvoren u kutu. To znači da će vrijednosti odgovarajućeg elementa biti unesene u njega. Pomoću kursorskih tipki možete se kretati vodoravno kroz sve pravokutnike i unositi sve elemente vektora ili matrice.


Riža. 5. 15 Ispisivanje vektorskih i matričnih predložaka i njihovo popunjavanje

Dok se unose elementi vektora ili matrica, prazni predlošci se prikazuju bez ikakvih komentara. Međutim, ako završite s unosom prije nego što su predlošci u potpunosti ispunjeni, sustav će prikazati poruku o pogrešci: neispunjeni predložak će postati crven. Izlaz nepostojeće matrice ili pogrešne indikacije njezinih indeksa također se prikazuje crvenom bojom.

Ako koristite operaciju umetanja kada je predložak matrice već ispisan, matrica se proširuje i povećava se njezina veličina. Gumb Izbriši omogućuje vam da uklonite proširenje matrice brisanjem retka ili stupca iz nje.

Svaki element matrice karakterizira indeksirana varijabla, a njegov položaj u matrici označen je s dva indeksa: jedan označava broj retka, drugi broj stupca. Za postavljanje indeksirane varijable prvo je potrebno unijeti naziv varijable, a zatim prijeći na skup indeksa pritiskom na tipku koja unosi simbol]. Prvo se navodi indeks retka, 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 s jednim indeksom. Donja granica indeksa postavljena je vrijednošću sistemske varijable ORIGIN. Obično je njegova vrijednost postavljena na 0 ili 1.

Najbolji članci na temu