Kako podesiti pametne telefone i računare. Informativni portal

Matlab tipovi varijabli. Programiranje M funkcija

U MATLAB sistemu postoji posebna vrsta promenljivih čija se vrednost, sa izuzetkom ans varijable, ne može menjati. Ove varijable se nazivaju sistemske varijable. Namijenjeni su za više efikasan rad prilikom proračuna, kao i za prikaz poruka sistema u slučaju netačne izjave o problemu od strane korisnika. U tabeli su navedene sistemske varijable koje se koriste u MATLAB-u.

MATLAB sistemska varijabla

Kompleksni brojevi

U MATLAB sistemu kompleksni brojevi, baš kao i prave, imaju tip double. Stoga nema potrebe za posebnim radom označavanja kompleksnim brojevima. Zapis se sastavlja na sljedeći način: 3+7i; -7,1+0,831E+2*i; 5-3j. Primjer pokazuje da se jedno od slova može koristiti za označavanje imaginarne jedinice: i ili j. Standardno, MATLAB koristi slovo i .

Ispod je primjer izračunavanja kvadratnog korijena od -1

>>b=sqrt(a)

Za kompleksne brojeve možete koristiti iste funkcije kao i za realne brojeve, osim u očiglednim slučajevima kada funkcija ne može imati kompleksan argument. Na primjer, funkcija rem (x,y) izračunava ostatak od x podijeljen s y, tako da će korištenje kompleksnog broja kao argumenta rezultirati greškom:

>> a=2+3*i;

>> rem(a,3)

Greška u korištenju ==> rem

Argumenti moraju biti stvarni.

Uz to, postoji i niz funkcija koje se primjenjuju samo na složene varijable.

Funkcije kompleksnih varijabli

Na primjer:

>> trbušnjaci (2+3i)

>>conj(2+3i)

2.0000 - 3.0000i

>> isreal(x)

U posljednjem primjeru, isreal funkcija je vratila broj 0 jer varijabla x nije realna.

5. Vidljivost imena varijabli i imena funkcija.

Lokalne i globalne varijable. Funkcija ima svoj prostor varijabli, izolovan od radnog prostora MATLAB sistema. Stoga, ako je varijabla s imenom, na primjer, varName1, definirana u MATLAB komandnom prozoru prije pozivanja M-funkcije, onda ne možete računati na činjenicu da varijabla u tijelu funkcije s istim imenom već ima neku vrijednost . 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 odgovaraju nazivima formalnih parametara ove funkcije nazivaju se lokalnim. Na drugi način kažu da su vidljivi samo unutar M-funkcije. Izvana se ne vide (nisu ostvarivi). Varijable definirane u MATLAB komandnom prozoru nisu vidljive unutar funkcije – one su van funkcije i nisu vidljive u njoj.

Isto tako, lokalne varijable za neku funkciju nisu vidljive unutar druge M-funkcije.

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

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

Kako globalne varijable imaju "globalni" opseg, da se slučajno (greškom) ne bi negdje redefinirali, poželjno je takvim varijablama dati mnemonička (duža i smislenija) imena.

Sada razmotrite pitanje vidljivosti imena 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 tekstu M-funkcije mogu se postaviti definicije nekoliko funkcija, a samo jedna od njih može imati isto ime kao ime datoteke. Ova funkcija će 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 dvije definicije funkcija pod nazivom ManyFunc i AnotherFunc, tada se samo funkcija ManyFunc može pozvati izvana. 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.

3.3. Izvršavanje M-funkcija. Liste argumenata. Tipovi argumenata. Tipovi podataka

M funkcija se može pozvati iz komandna linija MATLAB sistema ili iz drugih M-fajlova, obavezno specificirajte sve potrebne atribute - ulazne argumente u zagrade, izlazne argumente u uglastim zagradama.

Dodjela imena. Kada se pojavi novo ime, MATLAB provjerava:

  1. Da li je novo ime ime varijable.
  2. Da li je ovo ime podfunkcije, odnosno funkcije koja se nalazi u istoj M-datoteci i koja se poziva.
  3. Je li to ime privatne funkcije koja se nalazi u privatnom direktoriju. Ovom direktoriju mogu pristupiti samo M-datoteke postavljene jedan nivo više.
  4. Da li je to ime funkcije u MATLAB sistemskoj putanji. U ovom slučaju, sistem koristi M-datoteku koja se prva pojavljuje na pristupnoj stazi.

U slučaju duplih imena, MATLAB koristi prvo ime prema gornjoj hijerarhiji na 4 nivoa. Treba napomenuti da je u MATLAB-u 5 dozvoljeno redefinisati funkciju prema pravilima objektno orijentisanog programiranja.

Poziv funkcije. At Poziv M-funkcije, MATLAB prevodi funkciju u pseudokod i učitava je u memoriju. Time se izbjegava ponovno raščlanjivanje. Pseudokod ostaje u memoriji dok se ne koristi naredba za brisanje ili se sesija ne završi.

Dozvoljeno slijedeće modifikacije obrisati komande:

Ova komanda radi raščlanjivanje M-datoteka prosjek.m i pohranjuje rezultirajući pseudo-kod u datoteku pod nazivom prosjek.p. Time se izbjegava ponovno raščlanjivanje tokom nove sesije. Pošto je raščlanjivanje veoma brzo, korišćenje naredbe pcode gotovo da nema uticaja na brzinu njenog izvršavanja.
Upotreba P-koda je korisna u dva slučaja:

  • kada analizirati veliki broj M-fajlovi potrebni za renderiranje grafičkih objekata u razvojnim aplikacijama GUI korisnik; u ovom slučaju, upotreba P-koda omogućava značajno ubrzanje;
  • kada korisnik želi sakriti algoritme implementirane u M-datoteci.

Pravila donošenja svađe. Sa tačke gledišta programera, MATLAB sistem prosleđuje argument po njegovoj vrednosti. U stvari, samo oni argumenti koji su promijenjeni tokom rada ove funkcije se prosljeđuju po vrijednosti. Ako funkcija ne mijenja vrijednost argumenta, već ga koristi samo za proračune, tada se argument prosljeđuje referencom, što optimizira korištenje memorije.

Funkcija radnih prostora. Svakoj M-funkciji je dodijeljeno dodatno memorijsko područje koje se ne preklapa s radnim područjem MATLAB sistema. Ovo područje se naziva radnim područjem funkcije. Svaka funkcija ima svoj radni prostor.

Kada radite sa MATLAB sistemom, možete pristupiti samo varijablama koje se nalaze u radnom prostoru sistema ili u njemu radni prostor funkcije. Ako je varijabla deklarirana globalnom, onda se može smatrati da pripada nekoliko radnih područja.

Provjera broja argumenata. Funkcije nargin i nargout vam omogućavaju da odredite broj ulaznih i izlaznih argumenata pozvane funkcije. Ove informacije se kasnije mogu koristiti u izjavama uslova za promjenu toka izračunavanja.

primjer:

funkcija c = testarg1(a,b)
if(nargin == 1)
c = a.^2;
elseif(nargin == 2)
c = +b;
kraj

S obzirom na jedan ulazni argument, funkcija izračunava kvadrat ulazne varijable; kada su data dva argumenta, izvodi se operacija sabiranja.

Razmotrite više složen primjer- odabir dijela niza znakova prije separatora, koji može biti razmak ili bilo koji drugi znak. Kada se zada jedan ulazni argument, funkcija mora odabrati dio stringa do graničnika, koji je zadano kao razmak; i svi razmaci na početku reda se uklanjaju. Kada su navedena dva argumenta, znak za razdvajanje mora biti specificiran kao drugi argument.

Ova funkcija je formatirana kao M-funkcija strtok, koja se nalazi u direktoriju strfun.

Funkcija mora imati najmanje jedan ulazni argument

Ako postoji samo jedan ulazni argument, tada se kao separator koristi razmak.

Odredite početak odabranog podniza

Odredite kraj odabranog podniza

Odabir ostatka reda

Imajte na umu da je redoslijed argumenata u izlaznoj listi važan. Ako nije naveden izlazni argument prilikom pozivanja M-funkcije, prvi argument se izlazi prema zadanim postavkama. Za formiranje i izlaz narednih argumenata potrebno je organizirati odgovarajući poziv M-funkcije.

Liste argumenata.

Funkcije varargin i varargout vam omogućavaju da prenesete proizvoljan broj ulaznih i izlaznih argumenata. MATLAB sistem pakuje sve specificirane ulazne i izlazne argumente u niz ćelija. Svaka ćelija može sadržavati bilo koju vrstu i bilo koju količinu podataka.

Primjer
Funkcija testvar prihvata bilo koji broj vektora sa dva elementa kao ulazne argumente i prikazuje linije koje ih povezuju.

funkcija testvar(varargin)

za i = 1:dužina(varargin)
x(i) = varargin(i)(1);
y(i) = varargin(i)(2);
kraj

xmin = min(0, min(x));
ymin = min(0, min(y));
osa()
plot(x,y)

Dakle, funkcija testvar može raditi sa ulaznim listama različitih dužina.

primjer:

testvar(, , , , , )
testvar([-1 0], , , )

Formiranje ulaznog niza varargin. Budući da lista varargin pohranjuje ulazne argumente u niz ćelija, indeksi ćelija moraju se koristiti za dohvaćanje podataka. Ćelijski indeks ima dvije komponente:
- indeks u vitičastim zagradama;
- indeks u zagradama.

primjer:

y(i)=varargin(i)(2);
Ovdje indeks u vitičastim zagradama (i) označava adresu i-te ćelije varargin niza, a indeks u zagradi (2) ukazuje na drugi element u ćeliji.

Formiranje izlaznog niza varargout. Sa proizvoljnim brojem izlaznih argumenata, oni moraju biti spakovani u niz ćelija varargout. Da biste odredili broj izlaznih argumenata za funkciju, koristite funkciju nargout.

Primjer
Sljedeća funkcija uzima kao ulaz niz od dva stupca, gdje je prva kolona skup vrijednosti x-koordinate, a druga je skup vrijednosti y-koordinate. Funkcija dijeli niz na pojedinačne vektore, koji se mogu proslijediti funkciji testvar kao inputi.

funkcija = testvar2(niz)
za i = 1:nargout
varargout(i) = arrayin(i, :);
kraj

operator dodjeljivanja u za petlju koristi sintaksu dodjele niza ćelija. Lijeva strana iskaza o dodjeli koristi vitičaste zagrade da naznači da se podaci niza niza dodjeljuju ćeliji.

Za pozivanje funkcije testvar2 mogu se koristiti sljedeće izjave:

a = ";
= testvar2(a)

p1 = 16
p2 = 2 7
p3 = 3 8
p4 = 4 9
p5 = 5 0

Korištenje nizova ćelija u listama argumenata. Argumenti varargin i varargout moraju biti zadnji u svojim listama argumenata. Kada je pozvan argumenti funkcije, prethodni varargout se mora procijeniti unutar funkcije.

Primjer
Prikazuju se zaglavlja funkcija ispod pravilnu upotrebu liste varargin i varargout:

funkcija = primjer1(a,b,varargin)
funkcija = primjer2(x1,y1,x2,y2,zastavica)

Varijabilne vrste.

Lokalne i globalne varijable. Upotreba varijabli u M-datoteci se ne razlikuje od korištenja varijabli na komandnoj liniji, kako slijedi:

  • varijable ne zahtijevaju deklaraciju; prije dodjeljivanja vrijednosti varijabli, morate osigurati da su sve varijable na desnoj strani vrijednosti dodijeljene;
  • svaka operacija dodjeljivanja kreira varijablu, ako je potrebno, ili mijenja vrijednost postojeće varijable;
  • imena varijabli počinju slovom iza kojeg slijedi bilo koji broj slova, brojeva i donjih crta; MATLAB razlikuje gornje i donje znakove mala slova;
  • naziv varijable ne smije biti duži od 31 znak. Tačnije, ime može biti duže, ali MATLAB uzima u obzir samo prvi 31 znak.

Obično svaka M-funkcija specificirana u obliku M-datoteke ima svoju vlastitu lokalne varijable, koje se razlikuju od ostalih varijabli funkcije i radnog prostora. Međutim, ako više funkcija i radni prostor deklariraju promjenjivu globalnu, onda sve koriste jednu kopiju te varijable. Bilo koja dodjela ovoj varijabli prenosi se na sve funkcije gdje je deklarirana kao globalna.

Primjer.
Pretpostavimo da je potrebno istražiti utjecaj koeficijenata a i b za model predator-plijen opisan Lotke-Volterra jednadžbama:

Kreirajmo M-datoteku lotka.m:

funkcija yp = lotka(t, y)
%LOTKA Lotke-Volterra jednadžbe za model grabežljivac-plijen

globalni ALPHA BETA
yp = ;

Zatim kroz komandnu liniju unesite operatore:

globalni ALPHA BETA
ALFA = 0,01;
BETA = 0,02;
= ode23("lotka2",,);
plot(t,y)

Globalna komanda proglašava varijable ALPHA i BETA globalnim i stoga dostupne u funkciji lotka.m. Tako se mogu mijenjati iz komandne linije, a nova rješenja će se dobiti bez uređivanja M-fajla lotka.m.

Da biste radili sa globalnim varijablama, morate:

  • deklarisati varijablu kao globalnu u svakoj M-funkciji kojoj je potrebna ova varijabla. Da bi varijabla radnog prostora bila globalna, morate je deklarirati kao globalnu 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 da se osigura čitljivost koda jezika MATLAB i da se smanji mogućnost slučajnog redefinisanja globalne varijable.

Posebne varijable. Neke M-funkcije vraćaju posebne varijable koje igraju važnu ulogu kada radite u okruženju MATLAB sistema:

ans Zadnji rezultat; ako izlazna varijabla nije specificirana, tada MATLAB koristi varijablu ans.
eps Preciznost s pomičnim zarezom; određuje se dužinom mantise i za PC eps = 2.220446049250313e-016
realmax Maksimalni broj pokretni zarez koji se može predstaviti u kompjuteru; za PC realmax = 1,797693134862316e+308.
realmin Najmanji broj s pomičnim zarezom koji računar može predstaviti; za PC realmin = 2,225073858507202e-308.
pi Posebna varijabla za broj p: pi=3,141592653589793e+000.
i, j Posebne varijable za označavanje imaginarne jedinice
inf Posebna varijabla za predstavljanje simbola beskonačnosti?
NaN Posebna varijabla za označavanje nedefinirane vrijednosti - rezultat operacija kao što su: 0/0, inf/inf.
kompjuter Posebna varijabla koja označava tip računara koji se koristi; za PC - PCWIN.
flops Posebna varijabla koja označava broj operacija s pomičnim zarezom.
verzija Posebna varijabla za pohranjivanje broja verzije MATLAB sistema koji se koristi.

Odgovarajuće M-funkcije koje generiraju ove posebne varijable nalaze se u elmat direktoriju i podržane su online pomoći.

Tipovi podataka.

MATLAB definira šest bazni tipovi 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 jednog ili drugog objekta MATLAB sistema jednoj od klasa ima sljedeći oblik (slika 3.1):

Vjerovatno je da ćete većinu vremena imati posla samo sa dva od ovih tipa podataka: nizom duplikata (double) i nizom znakova (char) ili samo nizom. To je zbog činjenice da se svi proračuni u MATLAB sistemu izvode sa dvostrukom preciznošću i većina funkcija radi sa nizovima brojeva ili nizova dvostruke preciznosti.

Ostalo tipovi podataka namenjeno takvima posebne aplikacije, kao što je rad sa rijetkim matricama (sparse), obrada slike (uint8), rad sa velikim nizovima (ć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 dijele 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 se ne može izvesti matematička operacija. Da biste to učinili, takvi nizovi moraju biti konvertirani u tip double.

Kreirajte vlastite tipove i dodajte metode ugrađenim tipovima. 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 možete nadjačati objekat. Na primjer, da biste specificirali operaciju sortiranja za niz tipa uint8, kreirali biste metodu (sort.m ili sort.mex) i smjestili je u poseban direktorij @uint8.

Sljedeća tabela detaljnije opisuje tipove podataka.

Klasa Primjer Opis
Dvostruko [ 1 2; 3 4]
5+6i
Numerički niz dvostruka preciznost (ovo je najčešći tip varijable u MATLAB sistemu
Char "hej" Niz znakova(svaki znak je dugačak 16 bita), često se naziva string.
Sparse Speye(5) rijetka matrica dvostruka preciznost (samo 2D). Rijetka struktura se koristi za pohranjivanje matrica s malim brojem elemenata koji nisu nula, što omogućava korištenje samo malog dijela memorije potrebne za pohranjivanje pune matrice. Rijetke matrice zahtijevaju korištenje posebnih metoda za rješavanje problema.
ćelija (17 "zdravo" oko (2)) Cell array. Elementi ovog niza sadrže druge nizove. Nizovi ćelija vam omogućavaju spajanje povezani podaci, možda razne veličine, u jednu strukturu.
Struktura A.dan = 12; A.color="Crvena"; A.mat = magic(3); Niz zapisa. Sadrži nazive polja. Sama polja mogu sadržavati nizove. Kao i nizovi ćelija, nizovi zapisa kombinuju povezane podatke i informacije o njima.
Uint8 Uint8(magic(3)) Niz 8-bitnih neoznačenih cijelih brojeva. Omogućava vam pohranjivanje cijelih brojeva između 0 i 255 u 1/8 memorije potrebne za niz dvostruke preciznosti. Nema matematičke operacije jer ovi nizovi nisu definirani.
UserObject inline("sin(x)") Korisnički definiran tip podataka.

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. Operateri
isa(S",rijetko")
isa(S",dvostruko")
isa(S",numerički")

vrati vrijednosti 1(true), tj. S je numerička rijetka matrica dvostruke preciznosti.

Imajte na umu da je tip niz - niz je na vrhu grafikona. To znači da su svi MATLAB sistemski podaci nizovi.

Svaki tip podataka može biti povezan sa svojim vlastitim funkcijama i operatorima obrade, ili drugim riječima, metodama. Tipovi djece podaci koji se nalaze na dijagramu ispod roditeljskog tipa su također podržani metodama roditelja. Stoga je niz tipa double podržan metodama koje se koriste za numerički tip.

Tabela prikazuje neke od ovih metoda:

Klasa Metoda
niz Izračunavanje veličine (veličine), dužine (dužine), dimenzija (ndims), ujedinjenja niza (), transponiranja (transponiranja), višedimenzionalnog indeksiranja (podindeks), preoblikovanja (preoblikovanja) i permutiranja (permutiranja) dimenzija višedimenzionalnog niza.
niz ćelija Indeksiranje pomoću vitičastih zagrada (e1,…,en) i odvajanje stavki liste zarezima.
String Char Funkcije niza(strcmp, niži), automatska konverzija to tip double primijeniti metode dvostruke klase.
Dvostruko Aritmetičke i logičke operacije, matematičke funkcije, funkcije matrica.
Numeric Pretraga (pronalaženje), obrada kompleksnih brojeva (real, slika), formiranje vektora, izbor redova, kolona, ​​podblokova niza, skalarno proširenje.
Sparse Operacije na rijetkim matricama.
Niz strukturnih zapisa Pristup sadržaju polja .field (razdjelnik elementa liste je zarez).
Uint8 Operacija skladištenja (najčešće se koristi sa PPP obrada slike kutija sa alatima)
UserObject Definisano od strane korisnika

Prazni nizovi. Rane verzije MATLAB sistemi dozvoljavaju jedan oblik praznog niza veličine 0x0, označen kao . MATLAB 5 podržava nizove koji imaju jednu, ali ne sve svoje dimenzije jednake nuli, odnosno nizove dimenzija 1x0, 10x0x20 ili definisane 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).

Glavna svrha praznih nizova je da svaka operacija koja je definirana na nizu (matrici) veličine m × n određuje tačan rezultat za slučaj kada je m ili n nula. Veličina niza (matrice) rezultata mora odgovarati vrijednosti funkcije izračunate na nuli.

Na primjer, operater
C=
zahtijeva da nizovi A i B imaju isti broj redova. Dakle, ako niz A ima veličinu m x n i B je m x p, onda je C niz veličine m x (n+p). Rezultat će biti tačan ako je bilo koji od parametara m, n ili p jednak nuli.

Mnoge operacije u MATLAB sistemu kreiraju vektor reda ili kolone. U ovom slučaju, rezultat može biti ili prazan vektor reda
r = nule (1, 0),
ili prazan vektor kolone
C = nule (0, 1).

MATLAB 5 podržava MATLAB 4 sistemska pravila za if i while izjave. Na primjer, uslovni operator tip
ako A, S1, else, S0, kraj
izvršava naredbu S0 kada je A prazan niz.

Neke MATLAB sistemske funkcije kao što su sum, prod, min i max smanjuju dimenziju rezultata: ako je argument niz, onda je rezultat vektor; ako je argument vektor, onda je rezultat skalar.

Za ove funkcije, s praznim ulaznim nizom, dobivaju se sljedeći rezultati:
suma() = 0;
prod() = 1;
max() = ;
min() = .

Kao i drugi programski jezici, MATLAB ima mogućnost rada sa varijablama. Varijable su imenovani objekti koji pohranjuju neku vrstu podataka. Varijable mogu biti numeričke, vektorske ili karakterne, ovisno o vrsti podataka koje pohranjuju. Varijabla ima ime tzv identifikator. Podaci mogu promijeniti svoje vrijednosti, identifikator ostaje isti.

Prilikom odabira imena za varijablu, vodite se sljedećim pravilima.

■ Ime varijable može biti bilo koji broj znakova, ali samo prva 63 znaka se pamte i identifikuju (funkcija lengthmax imena vraća ovaj broj kao najveći mogući broj znakova u imenu varijable).

■ Ime varijable uvijek mora početi slovom i može sadržavati bilo koju kombinaciju slova, brojeva i donjih crta (_).

■ Nije dozvoljeno koristiti razmake u imenima varijabli i Posebni simboli(kao što su +, -,*,/).

■ Ime varijable ne smije biti isto kao imena drugih MATLAB varijabli, funkcija, procedura i sistemskih varijabli.

■ Imena varijabli razlikuju mala slova i velika slova(tj. Abc i aBc su različita imena).

Prije upotrebe bilo koje varijable, možete provjeriti da li je ime odabrano za nju važeće. Za to se primjenjuje sljedeća funkcija:

isvarname ime_varijable

gdje ime_varijable je ime varijable koju želite provjeriti je li ispravno. Ova funkcija vraća 1 ako je ime važeće i 0 u suprotnom. Na primjer, ime 12_abc_3 8 je nevažeće jer počinje brojem, dakle datu funkciju vraća 0.

>> isvarname 12_abc_3 8

Postoji nekoliko rezervisanih imena varijabli u MATLAB-u. Pozivaju se varijable s takvim imenima sistemski. Postavljaju se nakon pokretanja sistema i mogu se koristiti u matematički izrazi. Sistemske varijable se mogu nadjačati, tj. mogu im se dodijeliti druge vrijednosti ako je potrebno.

Glavne varijable MATLAB sistema su navedene ispod.

■ i , j - imaginarna jedinica (kvadratni korijen od -1) koja se koristi za definiranje imaginarnog dijela kompleksnih brojeva.

■ pi - broj π (π = 3,141592653589793).

■ eps - greška operacija nad brojevima s pomičnim zarezom, tj. interval između broja 1.0 i sljedećeg najbližeg broja s pomičnim zarezom (jednako 2.2204e-16, ili 2-52).

■ ans - rezultat poslednja operacija bez znaka zadatka.

■ inf - oznaka beskonačnosti mašine.

■ NaN - skraćenica za riječi Ne Broj (ne broj), koji se koristi za označavanje neodređenog rezultata (na primjer, 0/0 ili Inf /Inf).

■ realmin - minimalni modulo realni broj (2 .22 51e-308, ili 2 -1022).

■ realmax - maksimalni modul realni broj (1,7977e+308, ili 21023).

U MATLAB-u, za razliku od drugih programskih jezika, tipovi varijabli nisu deklarisani unaprijed. Dovoljno je dodijeliti vrijednost varijabli određeni tip. Na primjer, za dodjelu varijable ali vrijednost 5, unesite izraz u komandnu liniju ali=5 (kao operator dodjeljivanja znak jednakosti) i pritisnite tipku , nakon čega će program odmah vratiti vrijednost ove varijable.

>> ali=5

Kao što vidite, u ovom slučaju MATLAB program nema potrebe da se dodeljuje varijabla ans da predstavlja rezultat, jer je varijabla postavljena ali.

Ako ne želite da se vrijednost odmah prikaže na ekranu nakon dodjeljivanja vrijednosti varijabli, završite operaciju dodjele tačkom zarezom (;) i tek tada pritisnite .

Efekat tačke sa zarezom se proteže i dalje od zadataka. Ako navedete ovaj znak na kraju bilo kog izraza unesenog u komandnu liniju, tada rezultat njegove evaluacije neće biti odmah prikazan na ekranu. Umjesto toga, od vas će biti zatražena sljedeća naredba () Varijablu možete dodijeliti broj, aritmetički izraz, niz znakova (ograđen apostrofom) ili karakterni izraz.

Da biste povećali efikasnost programa, možda ćete morati da izbrišete iz memorije računara sve varijable koje se koriste u trenutnoj sesiji ili samo neke od njih. Za brisanje memorije iz varijabli u MATLAB-u koristi se funkcija clear, koja ima sintaksu:

· clear – uništavanje svih varijabli;

· clear x - uništenje varijable x;

clear a b c - uništenje porodice varijabli ( argumenti naredbe clear odmah slijede ime komande i razdvojeni su razmacima).

Da biste izbrisali sav sadržaj MATLAB komandnog prozora, koristite naredbu c1c. Nakon odabira ove naredbe, samo će informacije unesene u komandni prozor biti izbrisane, ali to neće utjecati na vrijednosti varijabli radnog prostora. Ovo se može provjeriti upisivanjem imena bilo koje od varijabli definiranih u trenutnoj sesiji na komandnoj liniji.

Kraj rada -

Ova tema pripada:

Posebni znakovi i njihova namjena

Jezik komunikacije sa matlab-om .. simboli i operatori jezika .. jezički operatori su simboli operacija nad podacima koji se u matlabu nazivaju operandi, svi opšteprihvaćeni..

Ako trebaš dodatni materijal na ovu temu, ili niste pronašli ono što ste tražili, preporučujemo da koristite pretragu u našoj bazi radova:

Šta ćemo sa primljenim materijalom:

Ako vam se ovaj materijal pokazao korisnim, možete ga spremiti na svoju stranicu na društvenim mrežama:

1. ELEMENTI M-JEZIKA MATLAB

Elementi u M-jeziku koji se koriste za kontrolu procesa računanja u MATLAB-u su konstante, varijable, funkcije, komande i kontrolne strukture. Ovi elementi mogu biti razna jedinjenja uz pomoć posebnih spojnih elemenata, koriste se i u komandnoj liniji i u programima.

1.1. KONSTANTE BMATLAB

Konstanta u MATLAB-u je informacija koja se ne mijenja tokom cijele komunikacijske sesije. Konstante su ili korisnički definirane (korisnički definirane) ili sistemski definirane (sistemski). Korisničke konstante postavlja 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 definirane u sistemu i imaju posebne oznake kojima se pozivaju, npr. pi (=3,1416), eps (=2,2204e-016), realmin (=2,2251e-308), realmax (=1,7977e+ 308 ), i, j (jºi).

1.2. VARIABLES INMATLAB

Varijabla u MATLAB-u je definisana identifikatorom, tipom, lokacijom u memoriji računara. Da biste definirali varijablu u MATLAB-u, morate odabrati identifikator (ime) varijable (počinje sa latinično pismo, u daljem tekstu - latinična slova, brojevi, specijalni znakovi) i koristite ovu varijablu u iskazu komandne linije koji postavlja vrijednost varijable (jednostavna dodjela, referenca na neke 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. Cjelobrojni 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) – realni dio kompleksnog broja,

imag(Q) – imaginarni dio skupa broja,

abs(Q) – apsolutna vrijednost postavljenog broja,

conj(Q) – broj konjugata komplementa,

ugao(Q) – vrijednost faze (ugla) postavljenog 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 konjugiranim komponentama.

D) matrice: M(i,j) – element i -tog reda i j -te kolone; M(k) - kth element matrica razvučena u kolonu.

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(:) -à povući 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) je mxm kvadratna identična matrica)

one(m,n) – matrica jedinica

nule(m,n) – matrica nula

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

C=round(1+100*rand(10,10)) je matrica veličine 10x10 ispunjena nasumičnim cijelim brojevima od 1 do 100.

Jednostavne matrične operacije:

diag(A) je vektor elemenata na glavnoj dijagonali matrice A,

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

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

  1. Simboličke varijable

cvb='Moskva je glavni grad Rusije'

Niz znakova je ograničen na pojedinačne apostrofe (na ključu sa ruskim slovom "e") i označen bojom.

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

Možete pretvoriti karakterne varijable u brojeve i obrnuto.

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

Varijabilna kontrola.

Metoda 1 - u prozoru Workspace

Metoda 2 - komanda who - daje listu definisanih sadašnji trenutak vremenske varijable.

3 način - naredba who - daje više pune informacije o varijablama (ime veličina bajtova klasa)

Č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 ime funkcije i, eventualno, navesti neke početne podatke. Dakle, 3 koncepta su ovde povezana sa konceptom funkcije (kao i u bilo kom drugom jeziku): ime funkcije, skup ulaznih podataka (varargin) i skup izlaznih podataka (varargout). Dodatno, 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, specificirane u sistemu koje ne zahtijevaju programiranje). O tome kako kreirati prilagođene funkcije, će se raspravljati kada se razmatraju programska pitanja. Jednom kreirana i debagirana, 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 m-datoteku sa funkcijom za izračunavanje vrijednosti decimalnog logaritma (\toolbox\matlab\elfun\log10.m) za pregled. Kada se izvrše, iskazi ovih programa se prvo prevode u instrukcije izvršni sistem kompjuter (prevedeno) i zatim izvršeno. Ugrađene funkcije su pohranjene u sistemu u kompajliranom obliku, ne zahtijevaju prijevod i zbog toga se izvršavaju brže od bibliotečkih. Sistemski direktorij za takve funkcije pohranjuje datoteke nazvane slično onima iz 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 elemente jezika (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.

Top Related Articles