Kako podesiti pametne telefone i računare. Informativni portal

Elementi MATLAB-a M-jezika. MATLAB programi

5. Vidljivost imena varijabli i imena funkcija.

Lokalne i globalne varijable. Funkcija ima svoj varijabilni prostor, izolovan od MATLAB radnog prostora. Stoga, ako je prije pozivanja M-funkcije u komandnom prozoru MATLAB-a definirana varijabla s imenom, na primjer, varName1, onda ne možete računati na činjenicu da varijabla u tijelu funkcije s istim imenom već ima neku vrednost. Ovo je potpuno drugačija varijabla (iako ima isto ime varName1) i nalazi se u memoriji mašine u drugom memorijskom području.

Varijable koje se koriste u tijelu M-funkcije i ne podudaraju se s imenima formalnih parametara ove funkcije nazivaju se lokalnim. Na drugi način kažu da su vidljivi samo unutar M-funkcije. Izvana nisu vidljivi (nedostupni). Varijable definirane u MATLAB komandnom prozoru nisu vidljive unutar funkcije – one su van funkcije i nisu vidljive unutar nje.

Slično, lokalne varijable unutar funkcije nisu vidljive unutar druge M-funkcije.

Jedan od kanala za prijenos informacija iz MATLAB komandnog prozora do M-funkcije i od jedne funkcije do druge je mehanizam parametara funkcije. Drugi takav mehanizam su globalne varijable.

Da bi MATLAB radni prostor i nekoliko M funkcija dijelili varijablu s određenim imenom, ona mora biti deklarirana kao globalna svuda koristeći ključna riječ globalno. Na primjer, varijabla glVarS uključena u proračune u radnom prostoru i funkciji FuncWithGlobVar je ista varijabla (jedna memorijska lokacija) u cijelom - tako da se može koristiti u funkciji bez dodatnog dodjeljivanja bilo kakve vrijednosti:

Budući da globalne varijable imaju „globalni“ opseg, kako ga slučajno (greškom) ne bi negdje redefinirali, preporučljivo je takvim varijablama dati mnemonička (duža i smislenija) imena.

Pogledajmo sada pitanje vidljivosti naziva funkcija. Ako smo funkciju sa određenim imenom sačuvali u datoteci sa istim imenom i ekstenzijom m, i pored toga, ako MATLAB sistem zna putanju do ove datoteke na disku, onda se ova funkcija može pozvati i iz komandnog prozora i iz drugih funkcija.

Međutim, u tekst M-funkcije možete postaviti definicije nekoliko funkcija, a samo jedna od njih može imati isto ime kao ime datoteke. Upravo će ova funkcija biti vidljiva iz komandnog prozora i drugih funkcija. Sve ostale funkcije će biti interne - mogu ih pozvati samo funkcije iz iste datoteke.

Na primjer, ako datoteka ManyFunc.m sadrži sljedeći tekst

funkcija ret1 = ManyFunc(x1, x2)

ret1 = x1 .* x2 + AnotherFunc(x1)

funkcija ret2 = AnotherFunc(y)

ret2 = y .* y + 2 * y + 3;

koja se sastoji od definicija dvije funkcije pod nazivom ManyFunc i AnotherFunc, tada se samo funkcija ManyFunc može pozvati eksterno. Na drugi način možemo reći da su izvana vidljive samo funkcije čiji nazivi odgovaraju nazivima M-fajlova. Preostale funkcije moraju biti pozvane ovom funkcijom i drugim internim funkcijama.

Ode23("lotka2",,); plot(t,y) Globalna komanda proglašava varijable ALPHA i BETA globalnim i stoga dostupne u funkciji lotka.m. Tako da se mogu mijenjati komandna linija, a nova rješenja će se dobiti bez uređivanja M-fajla lotka.m. Da biste radili sa globalnim varijablama, morate: deklarirati varijablu kao globalnu u svakoj M-funkciji koja zahtijeva ovu varijablu. Da bi varijabla radni prostor je globalno, morate ga deklarisati kao globalno iz komandne linije; u svakoj funkciji koristite globalnu naredbu prije prvog pojavljivanja varijable; Preporučljivo je navesti globalnu naredbu na početku M-datoteke. Globalna imena varijabli su obično duža i značajnija od imena lokalnih varijabli i često se koriste velika slova. Ovo je opciono, ali se preporučuje kako bi se osigurala čitljivost MATLAB koda i smanjila mogućnost slučajnog nadjačavanja globalne varijable. Posebne varijable. Neke M funkcije vraćaju posebne varijable koje se igraju važnu ulogu pri radu u okruženju MATLAB sistema: Poslednji rezultat; ako izlazna varijabla nije specificirana ans, tada MATLAB koristi varijablu ans. Preciznost s pomičnim zarezom; eps je određen dužinom mantise i za PC eps = 2.220446049250313e-016 Maksimalni broj floating point, predstavljaju realmax u kompjuteru; za PC realmax = 1,797693134862316e+308. Najmanji broj s pomičnim zarezom koji se može predstaviti realmin u računaru; za PC realmin = 2,225073858507202e-308. Posebna varijabla za broj p: pi pi=3,141592653589793e+000. 70 Posebne varijable za označavanje imaginarne jedinice i, j Posebna varijabla za označavanje simbola beskonačnosti? Posebna varijabla za označavanje nedefinirane NaN vrijednosti - rezultat operacija tipa: 0/0, inf/inf. Posebna varijabla koja označava tip računara koji se koristi; za PC - PCWIN. Posebna varijabla koja označava broj flopova operacija s pomičnim zarezom. Posebna varijabla za pohranjivanje broja verzije korišćene verzije MATLAB sistema. Odgovarajuće M-funkcije koje generiraju ove posebne varijable nalaze se u elmat katalogu i podržane su online pomoći. Postoji šest tipova podataka definisanih u MATLAB-u osnovne vrste podataka, od kojih je svaki višedimenzionalni niz. Šest klasa su double, char, sparse, uint8, cell i struct. Dvodimenzionalne verzije ovih nizova nazivaju se matrice, zbog čega MATLAB dobija ime MATRIX LAB. Dijagram pripadnosti određenog objekta MATLAB sistema u jednoj od klasa izgleda ovako (Slika 3.1): Slika 3.1 71 Najvjerovatnije je da ćete najčešće morati da imate posla sa samo dva od ovih tipa podataka: nizom dvostrukih podataka. precizni brojevi (double) i niz znakova (char), ili samo niz. To je zato što se svi proračuni u MATLAB-u izvode u dvostrukoj preciznosti, a većina funkcija radi na nizovima ili nizovima dvostruke preciznosti. Drugi tipovi podataka su namijenjeni za takve posebne aplikacije kao što su rad sa rijetkim matricama (sparse), obrada slike (uint8), rad sa nizovima velikih dimenzija (ćelija i struktura). Ne možete postaviti tip varijable na numerički ili niz. Ovi tipovi se zovu virtuelni i služe samo za grupisanje varijabli koje imaju zajedničke atribute. Tip uint8 je dizajniran za efikasno skladištenje podataka u memoriji. Na podatke ovog tipa mogu se primijeniti samo osnovne operacije indeksiranja i promjene veličine, ali ne matematička operacija. Da biste to učinili, takvi nizovi moraju biti konvertirani u tip double. Kreirajte vlastite tipove i dodajte metode za ugrađene tipove. Tabela ispod sadrži sedmi tip podataka - UserObject. MATLAB jezik omogućava vam da kreirate sopstvene tipove podataka i radite sa njima na isti način kao i sa ugrađenim tipovima. Za ugrađene tipove podataka, možete nadjačati metodu na isti način kao što to činite za objekat. Na primjer, da biste specificirali operaciju sortiranja za niz tipa uint8, trebate kreirati metodu (sort.m ili sort.mex) i smjestiti je u poseban direktorij @uint8. Sljedeća tabela detaljnije opisuje tipove podataka. Opis primjera klase Numerički niz dvostruka preciznost (ovo je najčešća [ 1 2; 3 4] Dvostruka varijabla tip 5 + 6i u MATLAB-u 72 Niz znakova (svaki znak je dugačak 16 bita), često se naziva Char "Hello" string. Dvostruka preciznost rijetke matrice (samo 2D) Rijetka struktura se koristi za pohranjivanje matrica s malim brojem elemenata koji nisu nula, dozvoljavajući Sparse Speyeu(5) da koristi samo dio memorije potrebne za pohranjivanje pune matrice. Koristite posebne tehnike za rješavanje problema. Niz ćelija. Elementi ovog niza sadrže druge nizove. Nizovi ćelija omogućavaju ćeliji (17 "zdravo" oko (2)) da kombinuje povezane podatke, eventualno razne veličine, u jednu strukturu. Niz zapisa. Sadrži nazive polja. A.dan = 12; A.color = Sama polja mogu sadržavati nizove. Slično strukturi "Red"; A.mat = nizovi ćelija, nizovi magic(3); zapisi kombinuju povezane podatke i informacije o njima. 73 Niz 8-bitnih neoznačenih cijelih brojeva. Omogućava vam pohranjivanje cijelih brojeva u rasponu od 0 do 255 u 1/8 memorije potrebne za Uint8 Uint8 (magic(3)) za niz dvostruke preciznosti. Za ove nizove nisu definirane matematičke operacije. Tip podataka definiran od strane korisnika UserObject inline("sin(x)"). Opis dijagrama. Linije za povezivanje na dijagramu (slika 3.1) određuju da li određeni tip podataka pripada jednoj ili više klasa. Primjer. Matrica tipa sparse takođe ima tipove double i numeric. Operatori isa(S",sparse") isa(S",double") isa(S",numeric") vraćaju vrijednosti 1 (true), odnosno, S je rijetka numerička matrica dvostruke preciznosti. Imajte na umu da je tip niza na vrhu dijagrama. To znači da su svi MATLAB sistemski podaci nizovi. Svaki tip podataka može biti povezan s vlastitim funkcijama i operatorima obrade, ili drugim riječima, metodama. Podređeni tipovi podataka, koji se nalaze ispod nadređenog tipa u dijagramu, takođe su podržani od strane roditeljskih metoda. Stoga je niz tipa double podržan metodama koje se koriste za numerički tip. Tabela prikazuje neke od ovih metoda: Metoda klase 74 Izračunavanje veličine (veličine), dužine (dužine), dimenzija (ndims), ujedinjenja niza (), transponiranja (transponiranja), višedimenzionalnog indeksiranja niza (podindeks), nadjačavanja (preoblikovanja) i permutacija (permutiranje) dimenzija višedimenzionalnog niza. Indeksiranje pomoću kovrčavih oblika - Niz ćelija na strani ćelije (e1,…,en) i odvajanje elemenata liste zarezima. Funkcije niza(strcmp, niži), automatska konverzija znakova niza u tip double koristiti metode dvostruke klase. Aritmetičke i logičke operacije, matematičke funkcije, dvostruke matematičke funkcije, funkcije matrica. Pretraga (pronalaženje), obrada kompleksni brojevi(real, slika), formiranje vektora, izbor numeričkih redova, kolona, ​​podblokova niza, skalarno proširenje. Rijetke operacije na rijetkim matricama. Niz zapisa Pristup sadržaju polja.field (razdjelnik strukture elemenata liste je zarez). Operacija skladištenja (najčešće se koristi sa Uint8 PPP Obrada slike Toolbox) UserObject Korisnički definirani prazni nizovi. Rane verzije MATLAB sistemi su dozvolili jedan oblik praznog niza veličine 0x0, označen kao . MATLAB podržava nizove koji imaju jednu, ali ne sve, svoju dimenziju jednaku nuli, odnosno nizove dimenzija 1x0, 10x0x20 ili definirane kao prazne. Uglaste zagrade nastaviti označavati niz 0x0. Prazni nizovi drugih veličina mogu se kreirati pomoću funkcija nula, jedinica, rand ili oka. Na primjer, da biste formirali prazan niz veličine 0x5, možete koristiti operator dodjeljivanja E = nule(0,5). 75 Glavna svrha praznih nizova je da svaka operacija koja je definirana na nizu (matrici) veličine m?n odredi tačan rezultat za slučaj kada je m ili n nula. Veličina niza rezultata (matrice) mora odgovarati vrijednosti funkcije izračunate na nuli. Na primjer, C = operator zahtijeva da nizovi A i B imaju isti broj redova. Dakle, ako niz A ima veličinu m?n, a B ima veličinu m?p, onda je C niz veličine m?(n+p). Rezultat će biti tačan ako je bilo koji od parametara m, n ili p jednak nuli. Mnoge operacije u MATLAB-u kreiraju vektor reda ili vektor kolone. U ovom slučaju, rezultat može biti ili prazan vektor reda r = nule(1, 0) ili prazan vektor stupca C = nule(0, 1). MATLAB 5 i noviji podržavaju MATLAB 4 sistemska pravila za if i while izjave. Na primjer, uslovni operator type if A, S1, else, S0, end izvršava naredbu S0 kada je A prazan niz. Neke MATLAB funkcije kao što su sum, prod, min i max smanjuju dimenzionalnost rezultata: ako je argument niz, onda je rezultat vektor; ako je argument vektor, onda je rezultat skalar. Za ove funkcije, ako je ulazni niz prazan, dobiju se sljedeći rezultati: sum() = 0 ; prod() = 1; max() = ; min() = . 3.4 Operatori sistema MATLAB 5. Kombinovanje operatora u aritmetičke izraze. Ugrađene funkcije MATLAB operatori MATLAB operatori spadaju u tri kategorije: 76 aritmetičkih operatora vam omogućavaju da konstruišete aritmetičke izraze i izvodite numerička izračunavanja. Relacioni operatori vam omogućavaju da uporedite numeričke operande. logički operatori vam omogućavaju da konstruišete logičke izraze. Logički operatori imaju najniži prioritet u odnosu na relacijske i aritmetičke operatore. Aritmetički operatori. Kada se radi sa nizom brojeva, uspostavljaju se sljedeći nivoi prioriteta među aritmetičkim operacijama: nivo 1: transpozicija po elementima (."), eksponencijacija po elementima (.^), hermitska konjugirana matrica transpozicija ("), matrična eksponencijacija ( ^); nivo 2: unarno sabiranje (+), unarno oduzimanje (-); nivo 3: množenje niza (.*), desna podjela (./), podjela lijevog niza (.\), množenje matrice (*), rješavanje sistema linearnih jednačina, operacija (/), operacija (\); nivo 4: sabiranje (+), oduzimanje (-); nivo 5: operator formiranja niza (:). Unutar svakog nivoa, operateri imaju jednak prioritet i ocjenjuju se redom s lijeva na desno. Zadani redoslijed se može promijeniti pomoću zagrada. Primjer. Neka su 2 vektora A = ; B = ; Rezultati izvršavanja operatora C = A./B. ^2 je jednako C = 0,7500 9,0000 0,2000 , a operator C = (A./B). ^2 je jednako C = 2,2500 81,0000 1,0000. Kao što vidite, rezultati su potpuno drugačiji. Aritmetički operatori dozvoljavaju upotrebu indeksnih izraza. Na primjer: 77 b = sqrt (A(2)) + 2*B (1) b=7 Aritmetički operatori MATLAB sistema rade, po pravilu, sa nizovima iste veličine. Za vektore i pravougaone nizove, oba operanda moraju biti iste veličine, osim u jedinom slučaju kada je jedan od njih skalar. Ako je jedan od operanada skalar, a drugi nije, MATLAB pretpostavlja da je skalar proširen na veličinu drugog operanda i specificirana operacija se primjenjuje na svaki element. Ova operacija se naziva skalarno proširenje. Relacioni operatori. Sljedećih 6 relacijskih operatora definirano je u MATLAB-u:< Меньше <= Меньше или равно >Veće od > = Veće ili jednako == Jednako identično ~ = Nije jednako Relacioni operatori izvode poređenje element po element dva niza jednakih dimenzija. Za vektore i pravougaone nizove, oba operanda moraju biti iste veličine, osim ako jedan od njih nije skalar. U ovom slučaju, MATLAB upoređuje skalar sa svakim elementom drugog operanda. Pozicije na kojima je ova relacija tačna dobijaju vrijednost 1, gdje je netočno - 0. Relacijski operatori se obično koriste za promjenu sekvence izvršavanja programskih izraza. Stoga se najčešće koriste u tijelu if, for, while, switch naredbi. Relacioni operatori se uvijek izvršavaju element po element. Primjer. Uporedimo dva niza koristeći uslov A

Osnove programiranja u MatLabu

Namestnikov S.M. / Zbirka predavanja: Državni tehnički univerzitet Uljanovsk, Uljanovsk. - 2011

Uvod

Poglavlje 1. Struktura programa. Osnovne matematičke operacije i tipovi podataka

1.1. Struktura MatLab programa

1.2. Jednostavne varijable i osnovni tipovi podataka u MatLabu

1.3. Aritmetičke operacije s jednostavnim varijablama

1.4. Osnovne matematičke funkcije MatLaba

1.5. Vektori i matrice u MatLabu

1.6. Operacije nad matricama i vektorima

1.7. Strukture u MatLabu

1.8. Ćelije u MatLabu

Poglavlje 2. Uslovni izrazi i petlje u MatLabu

2.1. Uslovna if izjava

2.2. Uvjetni prekidač

2.3. Operator petlje while

2.4. Operator petlje for

Poglavlje 3. Rad sa grafovima u MatLabu

3.1. funkcija zapleta

3.2. Dizajn grafikona

3.3. Prikaz 3D grafikona

3.4. Prikaz bitmapa

Poglavlje 4. Programiranje funkcija u MatLabu

4.1. Redoslijed definiranja i pozivanja funkcija

4.2. Varijabilni opseg

Poglavlje 5. Rad sa datotekama u MatLabu

5.1. funkcije spremanja i učitavanja

5.2. fwrite i fread funkcije

5.3. fscanf i fprintf funkcije

5.4. funkcije imread i imwrite

Uvod

Među mnogim postojećim matematičkim paketima, kao što su Mathematica, MathCad, itd., MatLab sistem zauzima vodeću poziciju zahvaljujući svom praktičnom ugrađenom programskom jeziku za implementaciju širokog spektra matematičkih algoritama i problema matematičkog modeliranja. Osim toga, ovaj paket dodatno ima alat za vizualno modeliranje, Simulink, koji vam omogućava da gradite i istražujete matematičke modele bez pribjegavanja njihovom programiranju.

Ovaj tutorijal ispituje interni programski jezik MatLab, koji pruža najveću fleksibilnost, bogatstvo funkcionalnosti i praktičnost u rješavanju i proučavanju matematičkih problema. Prilikom izlaganja gradiva prednost je data najjednostavnijim jezičkim konstrukcijama, proučavanjem kojih se mogu kreirati najraznovrsniji i netrivijalni matematički algoritmi.

Poglavlje 1. Struktura programa. Osnovne matematičke operacije i tipovi podataka

Prvi korak ka stvaranju matematičkih algoritama je proučavanje strukture programa i skupa matematičkih operacija dostupnih programskom jeziku. Konkretno, ovo poglavlje će ispitati matematičke operacije i funkcije MatLab paketa koje se odnose na obradu i skalarnih i matričnih varijabli.



Struktura MatLab programa

Po pravilu, svaki program u MatLabu je funkcija i počinje ključnom riječi funkcija, nakon čega slijedi njezino ime, odvojeno razmakom. Na primjer,

funkcija Lab1
a = 5;
b = 2;
c = a*b;

Ovaj program je sadržan u funkciji Lab1 i izračunava proizvod dvije varijable a i b. Prilikom spremanja programa u m-datoteku, preporučuje se da navedete naziv datoteke koji odgovara nazivu funkcije, tj. u ovom slučaju - Lab1.

Treba napomenuti da se mnoge dodatne funkcije mogu specificirati u jednoj m-datoteci. Da biste to učinili, samo napišite drugu funkciju ključne riječi na kraju glavnog popisa programa i postavite njeno ime, na primjer,

funkcija Lab1
a = 5;
b = 2;
c = a*b;
out_c(c); % funkcija poziva out_c()

funkcija out_c(arg_c) % definicija funkcije out_c()
disp(arg_c);

Imajte na umu da se funkcija out_c() može pozvati u glavnom programu prije nego što je definirana. Ovo je karakteristika jezika MatLab koja omogućava programeru da ne brine o redoslijedu specificiranja funkcija. U datom primjeru, funkcija out_c() ima jedan ulazni parametar pod nazivom arg_c, koji se ispisuje na ekran (u MatLab komandnom prozoru) pomoću ugrađene disp() funkcije. Kao rezultat toga, kada se gornji program izvrši, vrijednost varijable c će biti prikazana u MatLab komandnom prozoru.

Dodatne funkcije se također mogu obezbijediti u zasebnim m-datotekama. Na primjer, ako postoji potreba da se opiše funkcija u jednoj m-datoteci i pozove je u drugoj, onda se to može implementirati na sljedeći način.

1. fajl (Lab1.m)

Kada se Lab1 funkcija izvrši, MatLab će pozvati kvadratnu funkciju iz datoteke square.m. Ovo će biti urađeno automatski, jer... ugrađene funkcije jezika MatLab također se definiraju i pozivaju iz datoteka čija imena po pravilu odgovaraju nazivima pozvanih funkcija. Imajte na umu da funkcija square() ne samo da uzima dva argumenta a i b, već i vraća njihov proizvod pomoću varijable res. Predstavljenu sintaksu treba koristiti kad god se rezultat izračuna treba vratiti glavnom programu. Četvrto poglavlje ovog priručnika detaljnije opisuje konstrukciju poziva funkcija za implementaciju različitih algoritama.

Jednostavne varijable i osnovni tipovi podataka u MatLabu

Kreiranje programa obično počinje definiranjem varijabli i načina predstavljanja podataka. Stoga, da biste pravilno organizirali opis programskih podataka, morate znati kako postaviti varijable u MatLab-u i koje vrste varijabli su moguće.

Najjednostavniji i najčešći tip podataka je broj. U MatLab-u, broj je pohranjen u varijablu koja ima neko jedinstveno ime, na primjer,

definira varijablu pod nazivom a i dodjeljuje joj vrijednost 5. Po defaultu, varijabla a je realna (tip double), tj. može uzeti razlomke, na primjer,

postavlja vrijednost varijable a na -7.8. Možete promijeniti tip varijable specificiranjem tipa dodijeljenog broja koristeći odgovarajuću ključnu riječ, na primjer,

će dodijeliti broj 5 kao 16-bitnu vrijednost cijelog broja. Kao rezultat ove operacije, tip varijable a će odgovarati int16.

Tipovi podataka dostupni u MatLabu prikazani su u tabeli. 1.1.

Tabela 1.1. Osnovni tipovi podataka u MatLabu

Zadani tip je double, koji ima najveću preciznost u predstavljanju realnog broja i stoga je univerzalni tip. Međutim, ako trebate uštedjeti memoriju računala, možete sami odrediti željeni tip.

Posljednja stvar koju trebate znati kada definirate varijable je pravilo za određivanje njihovih imena. U MatLabu, imena varijabli mogu se specificirati samo latiničnim slovima, brojevima i simbolom '_'. Štaviše, prvi znak u imenu mora odgovarati slovu latinične abecede. Također treba napomenuti da su imena

arg = 1;
Arg = 2;
ARG = 3;

ovo su tri različita imena, tj. tri različite varijable sa vrijednostima 1, 2 i 3. Ovaj primjer pokazuje da MatLab razlikuje velika i mala slova u imenima varijabli.

Prilikom programiranja najbolje je navesti smislena imena varijabli koja će vam pomoći da shvatite koje podatke predstavljaju. Ovo izbjegava zabunu prilikom izrade velikih programa.

Kao i svi programski jezici, MatLab pruža mogućnost rada sa varijablama. Osim toga, korisnik ne mora brinuti o tome koje će vrijednosti varijabla uzeti (složene, realne ili samo cjelobrojne). Da biste dodijelili, na primjer, vrijednost 1,45 varijabli z, samo upišite z = 1,45 u komandnu liniju i MatLab će odmah ispisati vrijednost z:

» z = 1,45
z =
1.4500

Ovdje se znak jednakosti koristi kao operator dodjeljivanja.Često nije baš zgodno dobiti rezultat nakon svakog zadatka. Stoga, MatLab pruža mogućnost da se naredba dodjele završi tačkom i zarezom kako bi se potisnuo izlaz rezultata u komandni prozor. Ime varijable može biti bilo koji niz slova i brojeva bez razmaka, koji počinje slovom. Mala i velika slova se razlikuju, na primjer MZ i mz su dvije različite varijable. Broj znakova koje MatLab razumije u imenu varijable je 31.
Kao vježbu korištenja varijabli, pronađite vrijednost sljedećeg izraza:

Upišite sekvencu naredbi u nastavku (obratite pažnju na tačku i zarez u prve dvije izjave o dodjeli da biste spriječili ispis međuvrijednosti na ekran):

"x = sin(1.3*pi)/log(3.4);
» y = sqrt(tan(2,75)/tanh(2,75));
» z= (x+y)/(x-y)
Z =
0,0243 - 0,9997i

Posljednja naredba dodjele se ne završava tačkom i zarezom da bi se odmah dobila vrijednost originalnog izraza. Naravno, možete unijeti cijelu formulu odjednom i dobiti isti rezultat:

"(sin(1.3*pi)/log(3.4)+sqrt(tan(2.75)/tanh(2.75)))/…
(sin(1,3*pi)/log(3,4)-sqrt(tan(2,75)/tanh(2,75))) ans =
0,0243 - 0,9997i

Obratite pažnju koliko je prvi unos kompaktniji i jasniji od drugog! U drugoj opciji formula se nije uklapala u komandni prozor na jednom redu, a morao sam da je napišem u dva reda, za šta su tri tačke stavljene na kraj prvog reda.

Da unesete dugačke formule ili komande u komandnu liniju, stavite tri tačke (u nizu, bez razmaka), pritisnite taster i nastavite kucati formulu u sljedećem redu. Na ovaj način možete postaviti izraz u više redova. MatLab će procijeniti cijeli izraz ili izvršiti naredbu nakon što kliknete na u poslednjem redu (koji nema tri uzastopne tačke).

MatLab pamti vrijednosti svih varijabli definiranih tokom sesije. Ako je nakon unosa gornjeg primjera urađeno još nekoliko proračuna i postalo je potrebno prikazati vrijednost X, onda samo treba da ukucate X na komandnoj liniji i pritisnite :

"x
-0.6611

Gore definirane varijable mogu se koristiti u drugim formulama. Na primjer, ako sada trebate procijeniti izraz

,

zatim samo unesite sljedeću naredbu:

» (x-y)^(3/2)
ans =
-0,8139 + 0,3547i

Pozivanje funkcija u MatLabu je prilično fleksibilno. Na primjer, možete izračunati e3.5 pozivanjem funkcije exp iz komandne linije:

» exp(3.5)
ans =
33.1155

Drugi način je korištenje operatora dodjele:

» t = exp(3.5)
t =
33.1155

Pretpostavimo da su neki od proračuna sa varijablama završeni, a ostali će se morati završiti tokom sljedeće sesije rada sa MatLabom. U ovom slučaju, morat ćete spremiti varijable definirane u proizvodnom okruženju.

View Variables

Kada radite s prilično velikim brojem varijabli, morate znati koje su varijable već korištene, a koje nisu. U tu svrhu koristite naredbu who, koja prikazuje listu korištenih varijabli u MatLab komandnom prozoru:

"SZO"
Vaše varijable su:
al a2 a3

Komanda whos vam omogućava da dobijete detaljnije informacije o varijablama u obliku tabele:

Ukupan zbroj je 3 elementa koji koriste 24 bajta

Prva kolona Ime sastoji se od imena korištenih varijabli. Ono što je u koloni Veličina je u suštini određeno načinom na koji MatLab radi. MatLab program Svi podaci su predstavljeni u obliku nizova. Varijable al, a2 i a3 su dvodimenzionalni nizovi jedan po jedan. Svaka varijabla zauzima osam bajtova, kao što je naznačeno u koloni Bytes. Konačno, u posljednjoj koloni Class je naznačen tip varijabli - dvostruki niz, tj. niz brojeva dvostruke preciznosti. Red ispod tabele kaže da su ukupno tri elementa, tj. varijable zauzimaju dvadeset četiri bajta. Ispostavilo se da predstavljanje svih podataka u MatLabu kao nizova ima određene prednosti.
Za brisanje svih varijabli iz memorije koristite naredbu clear. Ako navedete listu varijabli (odvojenih razmacima) u argumentima, tada će samo one biti oslobođene memorije, na primjer:

» clear al az
"SZO"
Vaše varijable su:
a2

Počevši od verzije 6.0, pojavio se zgodan alat za pregled varijabli operativnog okruženja - prozor Radni prostor, da biste otišli na koji biste trebali aktivirati istoimeni bookmark. Ovaj prozor sadrži tabelu sličnu onoj prikazanoj komandom who. Dvostruki klik na red koji odgovara svakoj varijabli prikazuje njen sadržaj u zasebnom prozoru, što je posebno korisno kada radite sa nizovima. Traka sa alatkama prozora Radni prostor omogućava vam da uklonite nepotrebne varijable, sačuvate i otvorite radno okruženje.

1. ELEMENTI M-JEZIKA MATLAB

Elementi u M-jeziku koji se koriste za upravljanje računskim procesom u MATLAB-u su konstante, varijable, funkcije, komande i kontrolne strukture. Ovi elementi, eventualno u raznim vezama pomoću posebnih konektora, koriste se i na komandnoj liniji i u programima.

1.1. KONSTANTE BMATLAB

Konstanta u MATLAB-u predstavlja informaciju koja se ne mijenja tokom komunikacijske sesije. Konstante mogu biti korisnički definirane (korisnički definirane) ili sistemski definirane (sistemski). Korisničke konstante zadaje korisnik i koriste se jednom - u trenutku kada se spominju u izvršnoj komandnoj liniji. Na primjer, 16, -38.654, -1.e-23, 1+2i, "Ovo je konstanta simbola".

Sistemske konstante su trajno definisane u sistemu i imaju posebne oznake kojima se označavaju, na primer, pi (=3,1416), eps (=2,2204e-016), realmin (=2,2251e-308), realmax (=1,7977 e+308 ), i, j (jºi).

1.2. VARIABLES INMATLAB

Varijabla u MATLAB-u je definirana identifikatorom, tipom, lokacijom u memoriji računala. Da biste definisali promenljivu u MATLAB-u, potrebno je da izaberete identifikator (ime) varijable (počinje latiničnim slovom, zatim latiničnim slovima, brojevima, specijalnim znakovima) i upotrebite ovu varijablu u iskazu komandne linije koji postavlja vrednost varijabla (jednostavna dodjela, referenca na određenu varijablu). funkcije itd.).

  1. Numeričke varijable: obični (realni) ili kompleksni brojevi, vektori, matrice i višedimenzionalni nizovi. Za realni broj je dodijeljeno 8 bajtova, za kompleksni broj 16. Cijeli i realni brojevi se ne razlikuju.

A) realni brojevi

A=2 A=2,0 B=-143,298 C=1,23e-2

B) kompleksni brojevi

Q=1+3i r=-4,6-7,45i S=2+5j

real(Q) – supstanca.dio kompleksnog broja,

imag(Q) – imaginarni dio kompleksnog broja,

abs(Q) – apsolutna vrijednost kompleksnog broja,

conj(Q) – konjugirani kompleksni broj,

ugao(Q) – vrijednost faze (ugla) kompleksnog broja u radijanima.

C) vektori

vektori reda

a=1:3:10 b= c=linspace(13,53,5)

vektori stupaca

aa=a’ bb= cc= linspace(13,53,5)’ dd=(15:45)’

za vektore sa kompleksnim komponentama: ako je y kompleksan vektor, onda je y.’ vektor stupac sa istim komponentama, a y’ je vektor stupac sa komponentama koje su konjugirani kompleksni brojevi.

D) matrice: M(i,j) – element i – og reda i j – te kolone; M(k) je k-ti element matrice proširen u stupac.

A= ---à 1 2

A(2,2) (=4) A(3) (=2) -à A = (1 3 2 4)

A(3,4)=10 ---à 1 2 0 0

veličina(A) (=) =veličina(A) (m=3, n=4)

A=A(:) -à proširiti u kolonu – matrica postaje vektor!

reshape(A,3,4) -à pretvara vektor nazad u matricu 3x4

A(,:)= -à uklanja prvi i zadnji red iz matrice

A(:,)= à uklanja sve kolone osim posljednje

Neke posebne matrice:

oko(m,n) - jedinice na glavnoj dijagonali, ostale su nule (oko(m) - kvadratna matrica identiteta mxm)

one(m,n) – matrica jedinica

nule(m,n) – matrica nula

rand(m,n) – mxn matrica ispunjena slučajnim brojevima od 0 do 1

C=okruglo(1+100*rand(10,10)) – matrica 10x10 ispunjena nasumičnim cijelim brojevima od 1 do 100.

Jednostavne operacije sa matricama:

diag(A) – vektor elemenata koji se nalaze na glavnoj dijagonali matrice A,

diag(diag(A)) je kvadratna dijagonalna matrica sa dijagonalnim elementima, poput A, i nulama.

triu(A) tril(A) – matrica sa gornjim ili donjim dijelovima A, podstavljena nulama.

  1. Karakterne varijable

cvb=’Moskva je glavni grad Rusije’

Linija znakova ograničena je na pojedinačne apostrofe (na ključu s ruskim slovom “e”) i istaknuta je bojom.

Svaki znak zauzima 2 bajta i tretira se kao poseban element vektora reda znakova. Dakle, ako specificiramo operaciju transponiranja cvb’ , dobićemo vektor stupca sa 31 elementom.

Možete pretvoriti simboličke varijable u brojeve i obrnuto.

Obično se koriste za prikaz rezultata, grafikona, oznaka i poruka.

Kontrola varijabli.

Metod 1 – u prozoru Radni prostor

Metoda 2 – komanda who – daje listu varijabli definisanih u datom trenutku.

Metoda 3 - whos komanda - daje potpunije informacije o varijablama (Naziv Veličina Bytes Class)

Čišćenje memorije.

clear – potpuno brisanje svih varijabli (ili brisanje varijabli)

clear var1,var2,… - brisanje pojedinačnih varijabli var1,var2,….

1.3. FUNKCIJE INMATLAB

Funkcije u MATLAB-u su programi koji izvode neke uobičajene operacije nad podacima. Da biste izvršili ove operacije i dobili tražene rezultate, dovoljno je navesti naziv funkcije i, eventualno, navesti neke početne podatke. Dakle, koncept funkcije ovdje (kao i u svakom drugom jeziku) je povezan s 3 koncepta: imenom funkcije, skupom ulaznih podataka (varargin) i skupom izlaznih podataka (varargout). Osim toga, definirani su koncepti broja ulaznih parametara (nargin) i broja izlaznih parametara (nargout).

Funkcije u MATLAB-u se dijele na korisnički definirane (definirane, razvijene od strane korisnika) i sistemske (definirane, definirane u sistemu, ne zahtijevaju programiranje). Pokriti ćemo kako kreirati prilagođene funkcije kada budemo pokrivali teme programiranja. Nakon kreiranja i otklanjanja grešaka, korisnička funkcija se ne razlikuje od sistemske funkcije.

Funkcije sistema se dijele na ugrađene i bibliotečke funkcije. Funkcije biblioteke se pohranjuju u sistemu u obliku programa na jeziku M napisanih u fajlovima sa imenom koje odgovara imenu funkcije i sa ekstenzijom *.m. Tekstovi ovih programa dostupni su korisnicima za pregled (direktorij \toolbox\matlab\ na lokaciji instalacije MATLAB-a). Na primjer, možete otvoriti za pregled m-datoteke sa funkcijom za izračunavanje vrijednosti decimalnog logaritma (\toolbox\matlab\elfun\log10.m). Kada se izvrše, iskazi ovih programa se prvo prevode u instrukcije iz izvršnog sistema računara (tumače), a zatim se izvršavaju. Ugrađene funkcije su pohranjene u sistemu u kompajliranom obliku, ne zahtijevaju prijevod i zbog toga se izvršavaju brže od bibliotečkih funkcija. U sistemskom direktoriju za takve funkcije pohranjuju se datoteke koje su nazvane slično datotekama biblioteke, ali sadrže samo komentare o korištenju funkcija. Na primjer, možete otvoriti datoteku koja se odnosi na funkciju izračuna eksponenta (\toolbox\matlab\elfun\exp.m).

1.4. EXPRESIONS INMATLAB

Izraz je jezička konstrukcija koja uključuje jezičke elemente (konstante, varijable, funkcije) povezane jedni s drugima pomoću povezujućih znakova koji specificiraju operacije koje se izvode prilikom izračunavanja vrijednosti izraza. Postoje numerički (Nexpression), simbolički (CExpression) i logički (Lexpression) izrazi u zavisnosti od rezultata dobijenog nakon izvođenja operacija uključenih u izraz.

Najbolji članci na ovu temu