Cum se configurează smartphone-uri și PC-uri. Portal informativ

Elemente ale limbajului M MATLAB. Programe MATLAB

5. Vizibilitatea numelor de variabile și a numelor de funcții.

Variabile locale și globale. Funcția are propriul spațiu variabil, izolat de spațiul de lucru MATLAB. Prin urmare, dacă o variabilă cu un nume, de exemplu, varName1, a fost definită în fereastra de comandă MATLAB înainte de a apela funcția M, atunci nu puteți presupune că variabila din corpul funcției cu același nume are deja o valoare. Aceasta este o variabilă complet diferită (deși are același nume varName1) și se află în memoria mașinii într-o zonă de memorie diferită.

Variabilele care sunt utilizate în corpul unei funcții M și nu se potrivesc cu numele parametrilor formali ai acestei funcții sunt numite locale. În alt fel, ei spun că sunt vizibile doar în cadrul funcției M. Din exterior nu sunt vizibile (nu pot fi atinse). Variabilele definite în fereastra de comandă MATLAB nu sunt vizibile în interiorul unei funcții - sunt externe funcției și nu sunt vizibile în ea.

În mod similar, variabilele care sunt locale în interiorul unei anumite funcții nu sunt vizibile în interiorul unei alte funcții M.

Unul dintre canalele de transfer de informații din fereastra de comandă a sistemului MATLAB către funcția M și de la o funcție la alta este mecanismul parametrilor funcției. Un alt astfel de mecanism este variabilele globale.

Pentru ca spațiul de lucru MATLAB și funcțiile M multiple să partajeze o variabilă cu un anumit nume, aceasta trebuie să fie declarată globală peste tot folosind cuvântul cheie global. De exemplu, variabila glVarS care participă la calcule în spațiul de lucru și în funcția FuncWithGlobVar este aceeași variabilă (o singură bucată de memorie) peste tot - prin urmare, poate fi utilizată într-o funcție fără alocarea suplimentară a vreunei valori:

Întrucât variabilele globale au o sferă „globală”, pentru a nu o suprascrie accidental (din greșeală) oriunde, este recomandabil să se acorde acestor variabile nume mai mnemonice (mai lungi și mai semnificative).

Acum să ne uităm la problema vizibilității numelor de funcții. Dacă am salvat o funcție cu un anumit nume într-un fișier cu același nume și extensie m și, în plus, dacă MATLAB știe calea către acest fișier pe disc, atunci această funcție poate fi apelată atât din fereastra de comandă, cât și din alte funcții.

Cu toate acestea, în textul unei funcții M, puteți plasa definiții pentru mai multe funcții și doar una dintre ele poate potrivi numele cu numele fișierului. Această funcție va fi vizibilă din fereastra de comandă și din alte funcții. Toate celelalte funcții vor fi interne - numai funcțiile din același fișier le pot apela.

De exemplu, dacă fișierul ManyFunc.m conține următorul text

funcția ret1 = ManyFunc (x1, x2)

ret1 = x1. * x2 + AnotherFunc (x1)

funcția ret2 = AnotherFunc (y)

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

constând din definițiile a două funcții numite ManyFunc și AnotherFunc, atunci numai funcția ManyFunc poate fi apelată din exterior. În alt mod, putem spune că numai funcțiile cu nume care se potrivesc cu numele fișierelor M sunt vizibile din exterior. Restul funcțiilor trebuie apelate de această funcție și de alte funcții interne.

Ode23 ("lotka2" ,,); plot (t, y) Comanda globală declară variabilele ALPHA și BETA globale și, prin urmare, disponibile în funcția lotka.m. Astfel, acestea pot fi modificate din linia de comandă, iar noi soluții vor fi obținute fără a edita fișierul M lotka.m. Pentru a lucra cu variabile globale, trebuie: să declarați variabila ca globală în fiecare funcție M care are nevoie de această variabilă. Pentru ca o variabilă de spațiu de lucru să fie globală, trebuie să o declarați ca globală din linia de comandă; în fiecare funcție, utilizați comanda globală înainte de prima apariție a variabilei; se recomandă utilizarea comenzii globale la începutul fișierului M. Numele variabilelor globale sunt de obicei mai lungi și mai semnificative decât numele variabilelor locale și sunt adesea scrise cu majuscule. Acest lucru este opțional, dar recomandat pentru a menține lizibilitatea în codul MATLAB și pentru a reduce probabilitatea redefinirii accidentale a unei variabile globale. Variabile speciale. Unele funcții M returnează variabile speciale care joacă un rol important în mediul MATLAB: Ultimul rezultat; dacă variabila de ieșire nu este așa cum este specificată, atunci MATLAB folosește variabila ans. Precizie în virgulă mobilă; este determinată de lungimea mantisei și pentru PC eps = 2.220446049250313e-016 Numărul maxim în virgulă mobilă, reprezentat de mina realmax din computer; pentru PC realmax = 1,797693134862316e + 308. Cel mai mic număr în virgulă mobilă care este al meu realmin pe computer; pentru PC realmin = 2.225073858507202e-308. O variabilă specială pentru p: pi pi = 3,141592653589793e + 000. 70 Variabile speciale pentru unitatea imaginară i, j Variabilă specială pentru simbolul infinitului? O variabilă specială pentru desemnarea unei valori nedefinite - rezultatul unor operații precum: 0/0, inf / inf. O variabilă specială pentru a indica tipul de computer utilizat de computer; pentru PC - PCWIN. O variabilă specială pentru a indica numărul de flop-uri ale operațiunilor cu virgulă mobilă. O variabilă specială pentru stocarea numărului versiunii versiunii de sistem MATLAB utilizate. Funcțiile M corespunzătoare care generează aceste variabile speciale se află în directorul elmat și sunt susținute de un ajutor online. Tipuri de date MATLAB definește șase tipuri de date de bază, fiecare dintre acestea fiind o matrice multidimensională. Cele șase clase sunt double, char, sparse, uint8, cell și struct. Versiunile bidimensionale ale acestor tablouri sunt numite matrici, de unde MATLAB își primește numele, MATRIX LAB. Diagrama unui obiect de sistem MATLAB aparținând uneia dintre clase este următoarea (Figura 3.1): Figura 3.1 71 Cel mai adesea va trebui să aveți de-a face cu doar două dintre aceste tipuri de date: o matrice de numere cu precizie dublă (dublu) și un matrice de caractere (char), sau doar un șir. Acest lucru se datorează faptului că toate calculele din MATLAB sunt efectuate cu precizie dublă și majoritatea funcțiilor funcționează cu matrice de numere sau șiruri de precizie dublă. Alte tipuri de date sunt destinate aplicațiilor speciale, cum ar fi lucrul cu matrici rare (sparse), procesarea imaginilor (uint8), lucrul cu matrice de dimensiuni mari (celule și struct). Tipul variabilei nu poate fi setat la numeric sau matrice. Aceste tipuri sunt numite tipuri virtuale și sunt folosite doar pentru a grupa variabile care au atribute comune. Tipul uint8 este pentru stocarea eficientă a datelor în memorie. La acest tip de date pot fi aplicate doar operațiuni de bază de indexare și redimensionare, dar nu poate fi efectuată nicio operație matematică. Pentru a face acest lucru, astfel de matrice trebuie convertite în tip dublu. Crearea propriilor tipuri și adăugarea de metode pentru tipurile încorporate. Tabelul de mai jos conține al șaptelea tip de date, UserObject. MATLAB vă permite să vă creați propriile tipuri de date și să lucrați cu ele prin analogie cu tipurile încorporate. Pentru tipurile de date încorporate, puteți suprascrie o metodă în același mod ca și pentru un obiect. De exemplu, pentru a defini o operație de sortare pentru o matrice de tip uint8, trebuie să creați o metodă (sort.m sau sort.mex) și să o plasați în directorul special @ uint8. Următorul tabel descrie tipurile de date mai detaliat. Clasa Exemplu Descriere Matrice numerică cu precizie dublă (aceasta este cea mai comună [1 2; 3 4] Variabilă dublă tip 5 + 6i în MATLAB 72 Matrice de caractere (fiecare caracter are 16 biți), adesea numită rândul Char „Hi”. matrice rară de precizie (numai 2D). Structura rară este utilizată pentru a stoca matrice cu un număr mic de intrări diferite de zero, ceea ce permite lui Sparse Speye (5) să utilizeze doar o fracțiune din memoria necesară pentru a stoca matricea completă." - Matrici generice necesită utilizarea unor metode speciale pentru rezolvarea problemelor Matrice de celule Elementele acestui tablou conțin alte matrice. Matricele de celule îi permit lui Cell (17 ochi „bună ziua” (2)) să combine date asociate, posibil de dimensiuni diferite, într-o singură structură. Gamă de înregistrări. Include numele câmpurilor. A.zi = 12; A.color = Câmpurile în sine pot conține matrice. Ca Struct „Roșu”; A.mat = matrice de celule, matrice magic (3); înregistrările combină date și informații legate de acestea. 73 O matrice de numere întregi fără semn pe 8 biți. Vă permite să stocați numere întregi în intervalul de la 0 la 255 în 1/8 din memoria necesară de Uint8 Uint8 (magie (3)) pentru o matrice de precizie dublă. Nu sunt definite operații matematice pentru aceste tablouri. Tip de date definit de UserObject inline ("sin (x)") definit de utilizator. Descrierea diagramei. Liniile de conectare din diagramă (Figura 3.1) determină apartenența unui anumit tip de date la una sau mai multe clase. Exemplu. O matrice rară are și tipuri duble și numerice. Operatorii isa (S ", sparse") isa (S ", double") isa (S ", numeric") returnează valorile 1 (adevărat), adică S este o matrice numerică rară de dublă precizie. Rețineți că tipul de matrice este în partea de sus a diagramei. Aceasta înseamnă că toate datele MATLAB sunt tablouri. Fiecărui tip de date i se pot atribui propriile funcții și operatori de procesare, sau cu alte cuvinte, metode. Tipurile de date copil sub părintele din diagramă sunt acceptate și de metodele părinte. Prin urmare, o matrice de tip double este suportată de metodele utilizate pentru tipul numeric. Unele dintre aceste metode sunt prezentate în tabel: Metoda clasei 74 Calculul mărimii, lungimii, dimensiunii (ndims), concatenarea matricelor (), transpunerea, indexarea matricei multidimensionale (subindex), suprascrie (reforma) și permutarea dimensiunilor unui tablou multidimensional matrice. Indexarea folosind acolade - Matrice de celule de celule (e1, ..., en) și separarea elementelor din listă cu virgule. Funcții șir (strcmp, inferior), conversie automată String Char în tip dublu pentru a utiliza metodele clasei duble. Operatii aritmetice si logice, functii matematice, functii din matrici. Caută (găsește), procesează numere complexe (reale, imagine), generează vectori, selectează rânduri numerice, coloane, subblocuri ale unui tablou, extinderea unui scalar. Operații rare pe matrici rare. Matrice de înregistrări Acces la conținutul câmpului .field (separatorul Struct al articolelor din listă este o virgulă). Operațiune de stocare (utilizată cel mai adesea cu Uint8 RFP Image Processing Toolbox) UserObject Matrice goale definite de utilizator. Versiunile anterioare ale MATLAB permiteau o singură formă de matrice goală 0x0, denumită ca. MATLAB acceptă matrice în care una, dar nu toate dimensiunile este zero, adică matrice cu dimensiunile 1x0, 10x0x20 sau definite ca goale. Parantezele pătrate continuă să reprezinte matricea 0x0. Matricele goale de diferite dimensiuni pot fi create folosind funcțiile zerouri, unu, rand sau ochi. De exemplu, pentru a forma o matrice goală de dimensiunea 0x5, puteți utiliza operatorul de atribuire E = zerouri (0,5). 75 Scopul principal al tablourilor goale este ca orice operație care este definită pentru o matrice (matrice) de dimensiunea m × n va produce rezultatul corect pentru cazul în care m sau n este egal cu zero. Mărimea tabloului (matricei) rezultatului trebuie să corespundă valorii funcției calculate la zero. De exemplu, operatorul C = necesită ca tablourile A și B să aibă același număr de rânduri. Astfel, dacă matricea A are dimensiunea m-N, iar B are dimensiunea m-P, atunci C este o matrice de dimensiunea m-a (N + p). Rezultatul este corect dacă oricare dintre parametrii m, n sau p este zero. Multe operații din MATLAB creează un vector rând sau un vector coloană. În acest caz, rezultatul poate fi fie un vector rând r = zerouri (1, 0) fie un vector coloană gol C = zerouri (0, 1). MATLAB 5 și mai sus acceptă regulile de sistem MATLAB 4 pentru instrucțiunile if și while. De exemplu, un operator condiționat precum if A, S1, else, S0, end execută operatorul S0 când A este o matrice goală. Unele funcții MATLAB, cum ar fi sum, prod, min și max reduc rezultatul: dacă argumentul este o matrice, atunci rezultatul este un vector; dacă argumentul este un vector, atunci rezultatul este un scalar. Pentru aceste funcții, cu un tablou de intrare gol, se obțin următoarele rezultate: sum () = 0; prod () = 1; max () =; min () =. 3.4 Operatorii sistemului MATLAB 5. Combinarea operatorilor în expresii aritmetice. Funcții încorporate Operatorii de sistem MATLAB Operatorii de sistem MATLAB se împart în trei categorii: 76 Operatorii aritmetici vă permit să construiți expresii aritmetice și să efectuați calcule numerice. Operatorii relaționali vă permit să comparați operanzi numerici. operatorii logici vă permit să construiți expresii logice. Operatorii logici au cea mai mică prioritate față de operatorii relaționali și aritmetici. Operatori aritmetici. Când lucrați cu o matrice de numere, următoarele niveluri de prioritate sunt stabilite între operațiile aritmetice: nivelul 1: transpunere în funcție de element (. "), exponențiere în funcție de element (. ^), transpunere matriceală conjugată hermitian ("), exponențiere a matricei ( ^); nivelul 2: adunare unară (+), scădere unară (-); nivelul 3: înmulțirea tablourilor (. *), împărțirea la dreapta (./), împărțirea la stânga a tablourilor (. \), înmulțirea matricei (*), rezolvarea sistemelor de ecuații liniare, operația (/), operația (\); nivelul 4: adunare (+), scădere (-); nivelul 5: operatorul de formare a matricei (:). În cadrul fiecărui nivel, operatorii au prioritate egală și sunt evaluați în ordine de la stânga la dreapta. Ordinea implicită poate fi modificată folosind paranteze. Exemplu. Să fie dați 2 vectori A =; B =; Rezultatele executării operatorului C = A./B. ^ 2 este egal cu C = 0,7500 9,0000 0,2000, iar operatorul C = (A./B). ^ 2 este C = 2,2500 81,0000 1,0000. După cum puteți vedea, rezultatele sunt complet diferite. Operatorii aritmetici permit utilizarea expresiilor de index. De exemplu: 77 b = sqrt (A (2)) + 2 * B (1) b = 7 Operatorii aritmetici MATLAB lucrează de obicei cu tablouri de aceeași dimensiune. Pentru vectori și tablouri dreptunghiulare, ambii operanzi trebuie să aibă aceeași dimensiune, cu excepția cazului în care unul dintre ei este scalar. Dacă unul dintre operanzi este scalar, iar celălalt nu, se acceptă în MATLAB că scalarul este extins la dimensiunea celui de-al doilea operand și operația specificată este aplicată fiecărui element. Această operație se numește expansiune scalară. Operatori relaționali. MATLAB definește următorii 6 operatori relaționali:< Меньше <= Меньше или равно >Mai mare decât> = Mai mare sau egal cu == Egal cu Identitate ~ = Nu este egal cu Operatorii relaționali efectuează o comparație în funcție de elemente a două tablouri de dimensiuni egale. Pentru vectori și tablouri dreptunghiulare, ambii operanzi trebuie să aibă aceeași dimensiune, cu excepția cazului în care unul dintre ei este scalar. În acest caz, MATLAB compară scalarul cu fiecare element al celuilalt operand. Pozițiile în care acest raport este adevărat primesc valoarea 1, unde fals - 0. Operatorii relației, de regulă, sunt utilizați pentru a modifica secvența de execuție a instrucțiunilor programului. Prin urmare, ele sunt folosite cel mai adesea în corpul instrucțiunilor if, for, while, switch. Operatorii relaționali sunt întotdeauna executați în funcție de elemente. Exemplu. Să comparăm cele două matrice folosind condiția A

Bazele programării MatLab

Namestnikov S.M. / Culegere de prelegeri: UlSTU, Ulyanovsk. - 2011

Introducere

Capitolul 1. Structura programului. Operații matematice de bază și tipuri de date

1.1. Structura programului pachetului MatLab

1.2. Variabile simple și tipuri de date de bază în MatLab

1.3. Operatii aritmetice pe variabile simple

1.4. Funcții matematice de bază ale MatLab

1.5. Vectori și matrice în MatLab

1.6. Operatii pe matrici si vectori

1.7. Structuri în MatLab

1.8. Celulele din MatLab

Capitolul 2. Operatori și bucle condiționale în MatLab

2.1. Declarație condițională if

2.2. Declarație de comutare condiționată

2.3. Instrucțiunea while loop

2.4. Operator pentru buclă

Capitolul 3. Lucrul cu grafice în MatLab

3.1. Funcția Plot

3.2. Design grafic

3.3. Afișarea graficelor 3D

3.4. Afișarea bitmaps

Capitolul 4. Funcții de programare în MatLab

4.1. Procedura de definire și apelare a funcțiilor

4.2. Domeniu variabil

Capitolul 5. Lucrul cu fișiere în MatLab

5.1. Salvare și încărcare funcții

5.2. Funcții Fwrite și Fread

5.3. Funcțiile Fscanf și fprintf

5.4. Imread și imwrite Funcții

Introducere

Printre multele pachete matematice existente, cum ar fi Mathematica, MathCad etc., sistemul MatLab ocupă locul fruntaș datorită limbajului de programare încorporat convenabil pentru implementarea unei game largi de algoritmi matematici și probleme de modelare matematică. În plus, acest pachet are un instrument suplimentar de modelare vizuală Simulink, care vă permite să construiți și să explorați modele matematice fără a apela la programare.

Acest tutorial examinează limbajul intern de programare MatLab, care oferă cea mai mare flexibilitate, bogăție de funcționalitate și comoditate în rezolvarea și cercetarea problemelor matematice. În prezentarea materialului s-au preferat cele mai simple construcții ale limbajului, studiind care se poate crea cei mai diversi și netriviali algoritmi matematici.

Capitolul 1. Structura programului. Operații matematice de bază și tipuri de date

Primul pas către crearea algoritmilor matematici este studierea structurii programului și a setului de operații matematice disponibile pentru limbajul de programare. În special, acest capitol va lua în considerare operațiile și funcțiile matematice ale pachetului MatLab legate de procesarea variabilelor scalare și matriceale.



Structura programului pachetului MatLab

De regulă, fiecare program din MatLab este o funcție și începe cu cuvântul cheie de funcție, urmat de numele său, separat de un spațiu. De exemplu,

funcția Lab1
a = 5;
b = 2;
c = a * b;

Acest program este inclus într-o funcție numită Lab1 și calculează produsul a două variabile a și b. Când salvați un program într-un fișier m, este recomandat să specificați un nume de fișier care se potrivește cu numele funcției, de exemplu. în acest caz, Lab1.

Trebuie remarcat faptul că multe funcții suplimentare pot fi specificate într-un singur fișier m. Pentru a face acest lucru, este suficient să scrieți încă un cuvânt cheie de funcție la sfârșitul listei programului principal și să specificați numele acestuia, de exemplu,

funcția Lab1
a = 5;
b = 2;
c = a * b;
out_c (c); % apelare funcție out_c ()

funcția out_c (arg_c)% definiția funcției out_c ()
disp (arg_c);

Rețineți că funcția out_c () poate fi apelată în programul principal înainte de a fi definită. Aceasta este o caracteristică a limbajului MatLab care permite programatorului să nu-și facă griji cu privire la succesiunea de atribuire a funcțiilor. În exemplul dat, funcția out_c () are un parametru de intrare numit arg_c, care este afișat pe ecran (în fereastra de comandă MatLab) folosind funcția încorporată disp (). Ca urmare, atunci când programul de mai sus este executat, valoarea variabilei c va fi afișată în fereastra de comandă MatLab.

Funcțiile suplimentare pot fi stilate în fișiere m separate. De exemplu, dacă este nevoie de a descrie o funcție într-un fișier m și de a o apela în altul, atunci aceasta poate fi implementată după cum urmează.

primul fișier (Lab1.m)

Când funcția Lab1 este executată, sistemul MatLab va apela funcția square din fișierul square.m. Acest lucru se va face automat deoarece funcțiile încorporate ale limbajului MatLab sunt, de asemenea, definite și apelate din fișiere, ale căror nume corespund, de regulă, cu numele funcțiilor apelate. Rețineți, de asemenea, că pătratul () nu numai că ia două argumente, a și b, dar returnează și produsul lor folosind variabila res. Sintaxa furnizată ar trebui să fie folosită ori de câte ori doriți să returnați un rezultat de calcul la programul principal. Al patrulea capitol al acestui tutorial descrie mai detaliat construcțiile apelurilor de funcții pentru implementarea diverșilor algoritmi.

Variabile simple și tipuri de date de bază în MatLab

Crearea unui program, de regulă, începe cu definirea variabilelor și o modalitate de reprezentare a datelor. Prin urmare, pentru a organiza corect descrierea datelor programului, trebuie să știți cum să setați variabile în MatLab și ce tipuri de variabile sunt posibile.

Cel mai simplu și cel mai comun tip de date este un număr. În MatLab, un număr este stocat într-o variabilă care are un nume unic, de exemplu

setează o variabilă numită a și îi atribuie valoarea 5. Implicit, variabila a este reală (de tip double), adică. poate lua valori fracționale, de exemplu,

setează valoarea variabilei a la -7,8. Puteți schimba tipul unei variabile specificând tipul numărului atribuit folosind cuvântul cheie corespunzător, de exemplu,

va atribui numărul 5 ca valoare întreagă de 16 biți. Ca urmare a unei astfel de operații, tipul variabilei a va corespunde cu int16.

Tipurile de date disponibile în MatLab sunt prezentate în tabel. 1.1.

Tabelul 1.1. Tipuri de date de bază în MatLab

În mod implicit, este utilizat tipul dublu, care are cea mai mare precizie pentru reprezentarea unui număr real și, prin urmare, este un tip universal. Cu toate acestea, dacă trebuie să salvați memoria computerului, puteți specifica singur tipul dorit.

Ultimul lucru de care trebuie să fii conștient atunci când definiți variabile este regula pentru definirea numelor acestora. În MatLab, numele variabilelor pot fi specificate numai cu litere latine, cifre și simbolul „_”. Mai mult, primul caracter din nume trebuie să corespundă literei alfabetului latin. De asemenea, trebuie remarcat faptul că numele

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

acestea sunt trei nume diferite, adică trei variabile diferite cu valorile 1, 2 și, respectiv, 3. Acest exemplu arată că MatLab distinge majuscule și minuscule în numele variabilelor.

Când programați, cel mai bine este să setați nume de variabile sensibile, prin care puteți înțelege ce date reprezintă. Acest lucru evită confuzia atunci când construiești programe mari.

Ca în toate limbajele de programare, MatLab oferă posibilitatea de a lucra cu variabile. Mai mult, utilizatorul nu trebuie să-și facă griji cu privire la ce valori va lua variabila (complexe, reale sau numai numere întregi). Pentru a atribui, de exemplu, valoarea 1,45 variabilei z, este suficient să scrieți z = 1,45 pe linia de comandă, iar MatLab va afișa imediat valoarea z:

»Z = 1,45
z =
1.4500

Aici semnul egal este folosit ca operator de atribuire. De multe ori nu este foarte convenabil să obțineți rezultatul după fiecare sarcină. Prin urmare, MatLab oferă posibilitatea de a termina operatorul de atribuire cu un punct și virgulă pentru a suprima rezultatul în fereastra de comandă. Un nume de variabilă poate fi orice succesiune de litere și numere fără spațiu, începând cu o literă. Literele mici și mari sunt diferite, de exemplu MZ și mz sunt două variabile diferite. Numărul de caractere percepute de MatLab într-un nume de variabilă este 31.
Ca exercițiu de utilizare a variabilelor, găsiți semnificația următoarei expresii:

Tastați următoarea secvență de comenzi (rețineți punctul și virgulă în primele două instrucțiuni de atribuire pentru a suprima afișarea valorilor intermediare pe ecran):

„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

Ultima instrucțiune de atribuire nu se termină cu punct și virgulă pentru a obține imediat valoarea expresiei originale. Desigur, s-ar putea introduce întreaga formulă odată și obține același 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

Observați cât de mult prima intrare este mai compactă și mai clară decât a doua! În cea de-a doua versiune, formula nu încapea în fereastra de comandă pe o singură linie și trebuia scrisă în două rânduri, pentru care se puneau trei puncte la sfârșitul primei rânduri.

Pentru a introduce formule sau comenzi lungi în linia de comandă, puneți trei puncte (în rând, fără spații), apăsați tasta și continuați să tastați formula pe rândul următor. În acest fel, puteți plasa o expresie pe mai multe linii. MatLab va evalua întreaga expresie sau va executa o comandă după ce faceți clic pe în ultima linie (în care nu există trei puncte consecutive).

MatLab își amintește valorile tuturor variabilelor definite în timpul unei sesiuni. Dacă, după introducerea exemplului de mai sus, s-au mai făcut câteva calcule și a devenit necesară scoaterea valorii X, atunci ar trebui doar să tastați X la promptul de comandă și apăsați :

"X
-0.6611

Variabilele definite mai sus pot fi folosite și în alte formule. De exemplu, dacă acum trebuie să evaluați expresia

,

apoi introduceți următoarea comandă:

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

Apelarea funcțiilor din MatLab este suficient de flexibilă. De exemplu, puteți calcula e3.5 apelând funcția exp din linia de comandă:

»Exp (3,5)
ans =
33.1155

O altă modalitate este să utilizați operatorul de atribuire:

»T = exp (3,5)
t =
33.1155

Să presupunem că o parte din calculele cu variabile este făcută, iar restul va trebui finalizat în următoarea sesiune de lucru cu MatLab. În acest caz, va trebui să salvați variabilele definite în mediul de producție.

Vizualizarea variabilelor

Când lucrați cu un număr suficient de mare de variabile, trebuie să știți care variabile au fost deja utilizate și care nu. În acest scop, se utilizează comanda who, care afișează o listă de variabile utilizate în fereastra de comandă MatLab:

"Care
Variabilele dvs. sunt:
al a2 a3

Comanda whos vă permite să obțineți informații mai detaliate despre variabile sub forma unui tabel:

Totalul general este de 3 elemente folosind 24 de octeți

Prima coloană, Nume, conține numele variabilelor utilizate. Ceea ce este conținut în coloana Dimensiune este determinat în esență de principiul de bază al muncii MatLab. software MatLab toate datele sunt prezentate sub formă de tablouri. Variabilele al, a2 și a3 sunt tablouri bidimensionale una câte una. Fiecare dintre variabile este de opt octeți, așa cum este indicat în coloana Octeți. În cele din urmă, ultima coloană a clasei indică tipul variabilelor - matrice dublă, i.e. o serie de numere cu precizie dublă. Linia de sub tabel spune că în final sunt trei elemente, adică. variabilele sunt de douăzeci și patru de octeți. Se pare că reprezentarea tuturor datelor în MatLab sub formă de tablouri oferă anumite avantaje.
Pentru a elibera toate variabilele din memorie, utilizați comanda clear. Dacă specificați o listă de variabile în argumente (separate printr-un spațiu), atunci numai acestea vor fi eliberate din memorie, de exemplu:

»Ștergeți al a3
"Care
Variabilele dvs. sunt:
a2

Începând cu versiunea 6.0, a apărut un instrument convenabil pentru vizualizarea variabilelor mediului de lucru - the Spațiul de lucru, pentru a comuta la care marcajul cu același nume ar trebui să fie activat. Această fereastră conține un tabel similar cu cel afișat de comanda whos. Făcând dublu clic pe rândul corespunzător fiecărei variabile, se afișează conținutul acesteia într-o fereastră separată, ceea ce este util în special atunci când lucrați cu matrice. Bara de instrumente pentru fereastră Spațiul de lucru vă permite să eliminați variabilele inutile, să salvați și să deschideți mediul de lucru.

1. ELEMENTE ALE LIMBAJULUI M MATLAB

Elementele din limbajul M utilizate pentru a controla procesul de calcul în MATLAB sunt constante, variabile, funcții, comenzi și structuri de control. Aceste elemente, eventual în diverse conexiuni folosind conectori speciali, sunt folosite atât pe linia de comandă, cât și în programe.

1.1. CONSTANTE ÎNMATLAB

O constantă în MATLAB reprezintă informații care nu se modifică pe parcursul întregii sesiuni de comunicare. Constantele pot fi definite de utilizator (definite de utilizator) și definite de sistem (definite de sistem). Constantele definite de utilizator sunt specificate de utilizator și sunt utilizate o singură dată - în momentul de față sunt menționate în linia de comandă executabilă. De exemplu, 16, -38.654, -1.e-23, 1 + 2i, „Aceasta este o constantă de simbol”.

Constantele de sistem sunt definite permanent în sistem și au denumiri speciale prin care se face referire la ele, de exemplu, pi (= 3,1416), eps (= 2,2204e-016), realmin (= 2,2251e-308), realmax (= 1,7977). e + 308 ), i, j (jºi).

1.2. VARIABILELE INMATLAB

O variabilă în MATLAB este determinată de identificatorul ei, tipul, locația în memoria computerului. Pentru a defini o variabilă în MATLAB, trebuie să selectați identificatorul (numele) variabilei (începe cu o literă latină, apoi - litere latine, cifre, caractere speciale) și să utilizați această variabilă în operatorul de linie de comandă setarea valorii variabilei (atribuire simplă, referire la unele. funcții etc.).

  1. Variabile numerice: numere ordinare (reale) sau complexe, vectori, matrici și tablouri multidimensionale. Un număr real are 8 octeți alocați, un complex - 16. Numerele întregi și numerele reale nu diferă.

a) numere reale

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

B) numere complexe

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

real (Q) - parte substanță a numărului complex,

imag (Q) - parte imaginară a unui număr complex,

abs (Q) - valoarea absolută a numărului setat,

conj (Q) - număr complex conjugat,

unghi (Q) - valoarea fazei (unghiului) a numărului complex în radiani.

C) vectori

vectori rând

a = 1: 3: 10 b = c = linspace (13.53.5)

vectori coloană

aa = a ’bb = cc = linspace (13.53.5)’ dd = (15:45) ’

pentru vectori cu componente complexe: dacă y este un vector complex, atunci y. „este un vector coloană cu aceleași componente, iar y” este un vector coloană cu componente - numere complexe conjugate.

D) matrice: M (i, j) - un element al i-lea rând și j-a coloană; M (k) este al k-lea element al matricei întins într-o coloană.

A = --- a 1 2

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

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

dimensiunea (A) (=) = dimensiunea (A) (m = 3, n = 4)

A = A (:) -à se întinde într-o coloană - matricea devine vector!

remodelare (A, 3,4) -а transformă vectorul înapoi într-o matrice 3x4

A (,:) = -à elimină primul și ultimul rând din matrice

A (:,) = à elimină toate coloanele, cu excepția ultimei

Câteva matrici speciale:

ochiul (m, n) sunt unul pe diagonala principală, restul sunt zerouri (ochiul (m) este matricea de identitate pătrată mxm)

ones (m, n) - matricea unilor

zerouri (m, n) - matricea zerourilor

rand (m, n) - o matrice mxn plină cu numere aleatorii de la 0 la 1

C = rotund (1 + 100 * rand (10,10)) este o matrice de 10x10 umplută cu numere întregi aleatorii de la 1 la 100.

Operații simple cu matrice:

diag (A) este un vector de elemente pe diagonala principală a matricei A,

diag (diag (A)) este o matrice diagonală pătrată cu elemente diagonale, ca în A, și zerouri.

triu (A) tril (A) este o matrice cu părți superioare sau inferioare din A, căptuşite cu zerouri.

  1. Variabile simbolice

cvb = „Moscova este capitala Rusiei”

Șirul de caractere este limitat la un singur apostrof (pe cheia cu litera rusă „e”) și este evidențiat în culoare.

Fiecare caracter are 2 octeți și este tratat ca un element separat al vectorului șir de caractere. Deci, dacă setăm operația de transpunere cvb ', obținem un vector coloană cu 31 de elemente.

Puteți traduce variabilele simbolice în numere și invers.

Ele sunt de obicei folosite la afișarea rezultatelor, graficelor, etichetelor, mesajelor.

Control asupra variabilelor.

Metoda 1 - în fereastra Spațiu de lucru

Metoda 2 - comanda who - oferă o listă de variabile definite la un moment dat în timp.

Metoda 3 - comanda cui - oferă informații mai complete despre variabile (Name Size Bytes Class)

Curățarea memoriei.

clear - ștergerea completă a tuturor variabilelor (sau ștergerea variabilelor)

clear var1, var2,… - ștergerea variabilelor individuale var1, var2,….

1.3. FUNCȚII ÎNMATLAB

Funcțiile din MATLAB sunt programe care efectuează unele operații comune asupra datelor. Pentru a efectua aceste operații și a obține rezultatele cerute, este suficient să specificați numele funcției și, eventual, să specificați câteva date inițiale. Astfel, 3 concepte sunt asociate cu conceptul de funcție aici (ca în orice altă limbă): un nume de funcție, un set de date de intrare (varargin) și un set de date de ieșire (varargout). În plus, sunt definite conceptele de numărul de intrări (nargin) și numărul de ieșiri (nargout).

Funcțiile din MATLAB sunt subdivizate în definite de utilizator (definite de utilizator) și definite de sistem (definite în sistem și nu necesită programare). Cum să creați funcții personalizate va fi discutat atunci când luați în considerare problemele de programare. După creare și depanare, funcția personalizată nu este diferită de cea de sistem.

Funcțiile sistemului sunt clasificate în funcții încorporate și funcții de bibliotecă. Funcțiile bibliotecii sunt stocate în sistem sub formă de programe în limbaj M scrise în fișiere cu același nume cu numele funcției și cu extensia * .m. Textele acestor programe sunt disponibile pentru vizualizare de către utilizatori (directorul \ toolbox \ matlab \ din locația de instalare MATLAB). De exemplu, puteți deschide pentru vizualizarea unui fișier m cu o funcție pentru calcularea valorii logaritmului zecimal (\ toolbox \ matlab \ elfun \ log10.m). Când sunt executate, operatorii acestor programe sunt mai întâi traduși în instrucțiuni ale sistemului executiv al computerului (interpretate), apoi sunt executați. Funcțiile încorporate sunt stocate în sistem într-o formă compilată, nu necesită traducere și, prin urmare, rulează mai rapid decât cele din bibliotecă. Directorul de sistem pentru astfel de funcții conține fișiere numite similar fișierelor de bibliotecă, dar care conțin doar comentarii privind utilizarea funcțiilor. De exemplu, puteți deschide un fișier legat de funcția exponent (\ toolbox \ matlab \ elfun \ exp.m).

1.4. EXPRESII ÎNMATLAB

O expresie este un construct de limbaj care include elemente de limbaj (constante, variabile, funcții) legate între ele folosind caractere de legătură care specifică operațiile efectuate la calcularea valorii unei expresii. Exista expresii numerice (Nexpression), simbolice (Cexpression) si logice (Lexpression) in functie de rezultatul obtinut in urma efectuarii operatiilor incluse in expresie.

Top articole similare