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

Tipuri de variabile Matlab. Programarea funcțiilor M

În sistemul MATLAB, există un tip special de variabile a căror valoare, cu excepția variabilei ans, nu poate fi modificată. Aceste variabile sunt numite variabile de sistem. Ele sunt menite pentru mai mult munca eficientaîn timpul calculelor, precum și pentru afișarea mesajelor de către sistem în cazul unei declarații incorecte a problemei de către utilizator. Tabelul listează variabilele de sistem utilizate în MATLAB.

Notație variabilă de sistem MATLAB

Numere complexe

În sistemul MATLAB numere complexe, la fel ca și cele reale, au tipul dublu. Prin urmare, nu este nevoie de o lucrare separată de marcare a marcajului cu numere complexe. Înregistrarea se face astfel: 3+7i; -7,1+0,831E+2*i; 5-3j. Exemplul arată că una dintre litere poate fi folosită pentru a desemna unitatea imaginară: i sau j. În mod implicit, MATLAB folosește litera i .

Mai jos este un exemplu de calcul al rădăcinii pătrate a lui -1

>>b=sqrt(a)

Pentru numerele complexe, puteți utiliza aceleași funcții ca și pentru numerele reale, cu excepția cazurilor evidente când funcția nu poate avea un argument complex. De exemplu, funcția rem (x,y) calculează restul lui x împărțit la y, astfel încât utilizarea unui număr complex ca argument va avea ca rezultat o eroare:

>> a=2+3*i;

>> rem(a,3)

Eroare la utilizarea => rem

Argumentele trebuie să fie reale.

Pe lângă aceasta, există și o serie de funcții care se aplică numai variabilelor complexe.

Funcții ale variabilelor complexe

De exemplu:

>> abs(2+3i)

>>conj(2+3i)

2,0000 - 3,0000i

>> isreal(x)

În ultimul exemplu, funcția isreal a returnat numărul 0 deoarece variabila x nu este reală.

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

Variabile locale și globale. Funcția are propriul spațiu de variabile, izolat de spațiul de lucru al sistemului 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 conta pe faptul 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 sunt realizabile). Variabilele definite în fereastra de comandă MATLAB nu sunt vizibile în interiorul funcției - sunt externe funcției și nu sunt vizibile în aceasta.

De asemenea, variabilele locale 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 o funcție 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 al sistemului MATLAB și mai multe funcții M să partajeze o variabilă cu un nume, aceasta trebuie să fie declarată global peste tot folosind cuvânt cheie global. De exemplu, variabila glVarS implicată în calculele spațiului de lucru și în funcția FuncWithGlobVar este aceeași variabilă (locație de memorie unică) peste tot - deci poate fi utilizată în funcție fără a-i atribui în plus vreo valoare:

Întrucât variabilele globale au o sferă „globală”, pentru a nu o redefini în mod accidental (din greșeală) undeva, este de dorit să se acorde unor astfel de variabile nume mai mnemonice (mai lungi și mai semnificative).

Acum luați în considerare 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ă sistemul 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.

Totuși, în textul unei funcții M pot fi plasate definiții ale mai multor funcții și doar una dintre ele poate avea același nume 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 două definiții de funcție 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. Funcțiile rămase trebuie apelate de această funcție și de alte funcții interne.

3.3. Executarea funcţiilor M. Liste de argumente. Tipuri de argumente. Tipuri de date

Funcția M poate fi apelată de la Linie de comanda Sistemul MATLAB sau din alte fișiere M, asigurați-vă că specificați toate atributele necesare - argumente de intrare în parantezele, argumente de ieșire între paranteze drepte.

Atribuirea numelui. Când apare un nume nou, MATLAB verifică:

  1. Dacă noul nume este numele unei variabile.
  2. Acesta este numele unei subfuncții, adică o funcție care se află în același fișier M și este numită.
  3. Este numele unei funcții private situate în directorul privat. Acest director este accesibil numai de fișierele M plasate cu un nivel mai sus.
  4. Este numele unei funcții din calea sistemului MATLAB. În acest caz, sistemul utilizează fișierul M care apare primul în calea de acces.

În cazul numelor duplicate, MATLAB folosește prenumele conform ierarhiei cu 4 niveluri de mai sus. De remarcat că în MATLAB 5 este permisă redefinirea unei funcții conform regulilor de programare orientată pe obiecte.

Apel de funcție. La Apel cu funcția M, MATLAB traduce funcția în pseudocod și o încarcă în memorie. Acest lucru evită re-analizarea. Pseudocodul rămâne în memorie până când este folosită comanda de ștergere sau până când se termină sesiunea.

Permis modificările următoare comenzi clare:

Această comandă face analizare M-file average.m și salvează pseudo-codul rezultat într-un fișier numit average.p. Acest lucru evită re-analizarea în timpul unei noi sesiuni. Deoarece analizarea este foarte rapidă, utilizarea comenzii pcode nu are aproape niciun efect asupra vitezei de execuție a acesteia.
Utilizarea codului P este utilă în două cazuri:

  • când să analizeze un numar mare Sunt necesare fișiere M pentru randare obiecte graficeîn aplicații de dezvoltare GUI utilizator; în acest caz, utilizarea codului P oferă o accelerare semnificativă;
  • atunci când utilizatorul dorește să ascundă algoritmii implementați în fișierul M.

Reguli de trecere a argumentelor. Din punctul de vedere al programatorului, sistemul MATLAB transmite un argument după valoarea sa. De fapt, numai acele argumente care sunt modificate în timpul funcționării acestei funcții sunt transmise prin valoare. Dacă funcția nu modifică valoarea argumentului, ci o folosește doar pentru calcule, atunci argumentul este transmis prin referință, ceea ce permite optimizarea utilizării memoriei.

Caracteristici spații de lucru. Fiecărei funcție M i se aloca o zonă de memorie suplimentară care nu se suprapune cu zona de lucru a sistemului MATLAB. Această zonă se numește zona de lucru a funcției. Fiecare funcție are propriul spațiu de lucru.

Când lucrați cu sistemul MATLAB, puteți accesa doar variabilele situate în spațiul de lucru al sistemului sau în zonă de muncă funcții. Dacă o variabilă este declarată globală, atunci poate fi considerată ca și cum ar aparține mai multor zone de lucru.

Verificarea numărului de argumente. Funcțiile nargin și nargout vă permit să determinați numărul de argumente de intrare și de ieșire ale funcției apelate. Aceste informații pot fi utilizate ulterior în declarațiile de condiție pentru a schimba cursul calculelor.

Exemplu:

funcția c = testarg1(a,b)
if(nargin == 1)
c = a.^2;
elseif(nargin == 2)
c = +b;
Sfârşit

Având un singur argument de intrare, funcția calculează pătratul variabilei de intrare; când sunt date două argumente, se efectuează o operație de adăugare.

Luați în considerare mai mult exemplu complex- selectarea unei părți dintr-un șir de caractere înaintea separatorului, care poate fi un spațiu sau orice alt caracter. Când i se oferă un singur argument de intrare, funcția trebuie să selecteze partea din șir până la delimitator, care este implicit un spațiu; și toate spațiile de la începutul liniei sunt eliminate. Când sunt specificate două argumente, caracterul delimitator trebuie specificat ca al doilea argument.

Această funcție este formatată ca funcția M strtok, care se află în directorul strfun.

Funcția trebuie să aibă cel puțin un argument de intrare

Dacă există un singur argument de intrare, atunci un spațiu este folosit ca separator.

Determinați începutul subșirului selectat

Determinați sfârșitul subșirului selectat

Selectarea restului unei linii

Rețineți că ordinea argumentelor din lista de ieșire este importantă. Dacă nu este specificat niciun argument de ieșire la apelarea unei funcții M, primul argument este afișat implicit. Pentru formarea și ieșirea argumentelor ulterioare, este necesar să se organizeze un apel adecvat la funcția M.

Liste de argumente.

Funcțiile varargin și varargout vă permit să transmiteți un număr arbitrar de argumente de intrare și de ieșire. Sistemul MATLAB împachetează toate argumentele de intrare și ieșire specificate într-o matrice de celule. Fiecare celulă poate conține orice tip și orice cantitate de date.

Exemplu
Funcția testvar acceptă orice număr de vectori cu două elemente ca argumente de intrare și afișează liniile care le conectează.

funcția testvar(varargin)

pentru i = 1:lungime(varargin)
x(i) = varargin(i)(1);
y(i) = varargin(i)(2);
Sfârşit

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

Astfel, funcția testvar poate funcționa cu liste de intrare de diferite lungimi.

Exemplu:

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

Formarea matricei de intrare varargin. Deoarece lista varargin stochează argumentele de intrare într-o matrice de celule, indecșii de celule trebuie utilizați pentru a prelua datele. Un index de celulă are două componente:
- index în paranteze;
- index în paranteze.

Exemplu:

y(i)=varargin(i)(2);
Aici, indexul dintre paranteze (i) indică adresa celulei i-a a matricei varargin, iar indexul din paranteze (2) indică al doilea element din celulă.

Formarea matricei de ieșire varargout. Cu un număr arbitrar de argumente de ieșire, acestea trebuie să fie împachetate într-o matrice de celule varargout. Pentru a determina numărul de argumente de ieșire pentru o funcție, utilizați funcția nargout.

Exemplu
Următoarea funcție ia ca intrare o matrice cu două coloane, unde prima coloană este un set de valori de coordonate x, iar a doua este un set de valori de coordonate y. Funcția împarte matricea în vectori individuali, care pot fi transmise funcției testvar ca intrări.

functie = testvar2(arrayin)
pentru i = 1:nargout
varargout(i) = arrayin(i, :);
Sfârşit

operator de atribuire în pentru buclă folosește sintaxa de atribuire a matricei de celule. Partea stângă a instrucțiunii de atribuire folosește acolade pentru a indica faptul că datele șirului de matrice sunt atribuite celulei.

Următoarele instrucțiuni pot fi folosite pentru a apela funcția testvar2:

a = ";
= testvar2(a)

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

Utilizarea matricelor de celule în listele de argumente. Argumentele varargin și varargout trebuie să fie ultimul în listele lor de argumente respective. Când chemat argumente ale funcției, varargout precedent trebuie evaluat în interiorul funcției.

Exemplu
Antetele funcției de mai jos arată utilizarea corectă liste de varargin și varargout:

function = example1(a,b,varargin)
funcția = exemplu2(x1,y1,x2,y2,flag)

Tipuri variabile.

Variabile locale și globale. Utilizarea variabilelor într-un fișier M nu este diferită de utilizarea variabilelor pe linia de comandă, după cum urmează:

  • variabilele nu necesită declarare; înainte de a atribui o valoare unei variabile, trebuie să vă asigurați că toate variabilele din partea dreaptă a valorii sunt atribuite;
  • orice operație de atribuire creează o variabilă, dacă este necesar, sau modifică valoarea unei variabile existente;
  • numele variabilelor încep cu o literă urmată de orice număr de litere, cifre și litere de subliniere; MATLAB face distincție între caracterele superioare și inferioare literă mică;
  • numele variabilei nu trebuie să depășească 31 de caractere. Mai exact, numele poate fi mai lung, dar MATLAB ia în considerare doar primele 31 de caractere.

De obicei, fiecare funcție M specificată sub forma unui fișier M are propria sa variabile locale, care sunt diferite de alte variabile de funcție și spațiu de lucru. Cu toate acestea, dacă mai multe funcții și un spațiu de lucru declară o variabilă globală, atunci toate folosesc o singură copie a acelei variabile. Orice atribuire acestei variabile este propagată la toate funcțiile în care este declarată globală.

Exemplu.
Să presupunem că este necesar să se investigheze influența coeficienților a și b pentru modelul prădător-pradă descris de ecuațiile Lotke-Volterra:

Să creăm un fișier M lotka.m:

funcția yp = lotka(t, y)
%LOTKA din ecuația Lotke-Volterra pentru modelul prădător-pradă

global ALPHA BETA
yp = ;

Apoi, prin linia de comandă, introduceți operatorii:

global ALPHA BETA
ALPHA = 0,01;
BETA = 0,02;
= ode23("lotka2",,);
complot(t,y)

Comanda globală declară variabilele ALPHA și BETA globale și, prin urmare, sunt 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ă editarea fișierului 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ă să specificați comanda globală la începutul fișierului M.

Numele variabilelor globale sunt de obicei mai lungi și mai semnificative decât numele variabilelor locale și sunt adesea folosite litere mari. Acest lucru este opțional, dar recomandat pentru a asigura lizibilitatea codului limbajului MATLAB și pentru a reduce șansa de a redefini accidental o variabilă globală.

Variabile speciale. Unele funcții M returnează variabile speciale care se joacă rol important când lucrați în mediul de sistem MATLAB:

ans Ultimul rezultat; dacă variabila de ieșire nu este specificată, atunci MATLAB folosește variabila ans.
eps Precizie în virgulă mobilă; este determinată de lungimea mantisei și pentru PC eps = 2.220446049250313e-016
realmax Număr maxim virgulă mobilă reprezentabilă într-un computer; pentru PC realmax = 1,797693134862316e+308.
realmin Cel mai mic număr în virgulă mobilă pe care îl poate reprezenta un computer; pentru PC realmin = 2.225073858507202e-308.
pi Variabilă specială pentru numărul p: pi=3.141592653589793e+000.
eu, j Variabile speciale pentru a desemna unitatea imaginară
inf Variabilă specială pentru a reprezenta simbolul infinitului?
NaN O variabilă specială pentru desemnarea unei valori nedefinite - rezultatul unor operații precum: 0/0, inf/inf.
calculator O variabilă specială pentru a indica tipul de computer utilizat; pentru PC - PCWIN.
flops O variabilă specială pentru a indica numărul de operații în virgulă mobilă.
versiune O variabilă specială pentru stocarea numărului de versiune a sistemului MATLAB utilizat.

Funcțiile M corespunzătoare care generează aceste variabile speciale se găsesc în directorul elmat și sunt susținute de un ajutor online.

Tipuri de date.

MATLAB definește șase tipuri de bază date, 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 matrice, de unde MATLAB își primește numele Matrix Lab.

Diagrama de apartenență a unuia sau altuia obiect al sistemului MATLAB la una dintre clase are următoarea formă (Fig. 3.1):

Este posibil ca de cele mai multe ori să aveți de-a face doar cu două dintre aceste tipuri de date: o matrice de duble (double) și o matrice de caractere (char), sau doar un șir. Acest lucru se datorează faptului că toate calculele din sistemul 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 destinate astfel aplicatii speciale, cum ar fi lucrul cu matrici rare (sparse), prelucrarea imaginilor (uint8), lucrul cu matrice mari (celulă și struct).

Nu puteți seta tipul de variabilă la numeric sau matrice. Aceste tipuri sunt numite virtuale și servesc numai pentru gruparea variabilelor care au atribute comune.

Tipul uint8 este conceput pentru a stoca datele în mod eficient în memorie. Datelor de acest tip pot fi aplicate doar operații de bază de indexare și dimensionare, dar nu se poate efectua nicio operație matematică. Pentru a face acest lucru, astfel de matrice trebuie convertite la tipul dublu.

Creați-vă propriile tipuri și adăugați metode la tipurile încorporate. Tabelul de mai jos conține al șaptelea tip de date, UserObject. limbajul MATLAB vă permite să vă creați propriile tipuri de date și să lucrați cu ele în același mod ca și tipurile încorporate.

Pentru tipurile de date încorporate, puteți suprascrie o metodă în același mod în care puteți suprascrie un obiect. De exemplu, pentru a specifica o operație de sortare pentru o matrice de tip uint8, ați crea o metodă (sort.m sau sort.mex) și ați plasa-o în directorul special @uint8.

Următorul tabel descrie tipurile de date mai detaliat.

Clasă Exemplu Descriere
Dubla [ 1 2; 3 4]
5+6i
Matrice numerică dublă precizie (acesta este cel mai comun tip de variabilă în sistemul MATLAB
Char "Bună" Matrice de caractere(fiecare caracter are 16 biți lungime), adesea denumit șir.
Rară Speye(5) matrice rară dublă precizie (numai 2D). Structura rară este utilizată pentru a stoca matrice cu un număr mic de elemente diferite de zero, ceea ce face posibilă utilizarea doar a unei mici părți din memoria necesară pentru a stoca o matrice completă. Matricele rare necesită utilizarea unor metode speciale pentru rezolvarea problemelor.
celulă (17 ochi „bună ziua” (2)) Matrice de celule. Elementele acestei matrice conțin alte matrice. Matricele de celule vă permit să îmbinați date aferente, Poate diferite dimensiuni, într-o singură structură.
Struct A.zi = 12; A.color="Roșu"; A.mat = magie(3); Matrice de înregistrare. Include numele câmpurilor. Câmpurile în sine pot conține matrice. Ca și matricele de celule, matricele de înregistrări combină date și informații legate de acestea.
Uint8 Uint8(magie(3)) Matrice de numere întregi fără semn pe 8 biți. Vă permite să stocați numere întregi între 0 și 255 în 1/8 din memoria necesară pentru o matrice de precizie dublă. Nici unul operatii matematice deoarece aceste matrice nu sunt definite.
UserObject inline ("sin(x)") Tip de date definit de utilizator.

Descrierea diagramei. Liniile de legătură din diagramă (Fig. 3.1) determină dacă un anumit tip de date aparține uneia sau mai multor clase.

Exemplu
O matrice de tip sparse are și tipuri duble și numerice. Operatori
isa(S",rar")
isa(S",dublu")
isa(S",numeric")

returnează valorile 1 (adevărat), adică S este o matrice rară numerică cu precizie dublă.

Rețineți că tipul este matrice - matricea se află în partea de sus a diagramei. Aceasta înseamnă că toate datele sistemului MATLAB sunt matrice.

Fiecare tip de date poate fi asociat cu propriile funcții și operatori de procesare, sau cu alte cuvinte, cu metode. Tipuri de copii datele aflate în diagrama de mai jos tipul de părinte sunt suportate și de metodele părintelui. Prin urmare, o matrice de tip double este suportată de metodele utilizate pentru tipul numeric.

Tabelul prezintă câteva dintre aceste metode:

Clasă Metodă
matrice Calculul dimensiunilor (dimensiunii), lungimii (lungimii), dimensiunilor (ndims), uniunii matricei (), transpunerii (transpunerii), indexării multidimensionale (subindex), dimensiunilor de remodelare (reformare) și permutare (permutare) ale unui tablou multidimensional.
matrice de celule Indexarea folosind acolade (e1,…,en) și separarea elementelor din listă cu virgule.
String Char Funcții șiruri(strcmp, mai jos), conversie automată la tip dublu să aplice metodele clasei duble.
Dubla Operații aritmetice și logice, functii matematice, funcțiile matricelor.
Numeric Căutare (găsire), prelucrare de numere complexe (reale, imagine), formarea vectorilor, selecția rândurilor, coloanelor, subblocuri matrice, extindere scalară.
Rară Operații pe matrici rare.
Matrice de înregistrări Struct Acces la conținutul câmpului .field (separatorul de elemente de listă este o virgulă).
Uint8 Operațiune de stocare (utilizată cel mai frecvent cu PPP procesarea imaginii trusa de scule)
UserObject Definit de utilizator

Matrice goale. Versiuni timpurii Sistemele MATLAB au permis o singură formă a unui tablou gol de dimensiunea 0x0, notat ca . MATLAB 5 acceptă tablouri care au una, dar nu toate dimensiunile lor egale cu zero, adică tablouri cu dimensiunile 1x0, 10x0x20 sau definite ca goale.

Paranteza patrata continuă să noteze tabloul 0x0. Matricele goale de alte 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).

Scopul principal al tablourilor goale este ca orice operație care este definită pe o matrice (matrice) de dimensiunea m × n determină rezultatul corect pentru cazul în care m sau n este zero. Mărimea matricei (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ă tabloul A are dimensiunea m x n și B este m x p, atunci C este o matrice de dimensiunea m x (n+p). Rezultatul va fi corect dacă oricare dintre parametrii m, n sau p este zero.

Multe operații din sistemul MATLAB creează un vector rând sau coloană. În acest caz, rezultatul poate fi fie un vector rând gol
r = zerouri (1, 0),
sau un vector coloană gol
C = zerouri (0, 1).

MATLAB 5 acceptă regulile de sistem MATLAB 4 pentru instrucțiunile if și while. De exemplu, operator condițional tip
dacă A, S1, altfel, S0, se încheie
execută instrucțiunea S0 când A este o matrice goală.

Unele funcții ale sistemului MATLAB, cum ar fi sum, prod, min și max reduc dimensiunea rezultatului: dacă argumentul este un tablou, atunci rezultatul este un vector; dacă argumentul este un vector, atunci rezultatul este un scalar.

Pentru aceste funcții, cu o matrice de intrare goală, se obțin următoarele rezultate:
suma() = 0 ;
prod() = 1 ;
max() = ;
min() = .

Ca și alte limbaje de programare, MATLAB are capacitatea de a lucra cu variabile. Variabile sunt obiecte numite care stochează un fel de date. Variabilele pot fi numerice, vectoriale sau caractere, în funcție de tipul de date pe care le stochează. Variabila are un nume numit identificator. Datele își pot schimba valorile, identificatorul rămâne același.

Când alegeți un nume pentru o variabilă, ghidați-vă de următoarele reguli.

■ Un nume de variabilă poate fi orice număr de caractere, dar numai primele 63 de caractere sunt memorate și identificate (funcția name lengthmax returnează acest număr ca număr maxim posibil de caractere în numele variabilei).

■ Un nume de variabilă trebuie să înceapă întotdeauna cu o literă și poate conține orice combinație de litere, cifre și litere de subliniere (_).

■ Nu este permisă utilizarea spaţiilor în numele variabilelor şi Simboluri speciale(cum ar fi +, -,*,/).

■ Numele variabilei nu trebuie să fie același cu numele altor variabile, funcții, proceduri și variabile de sistem MATLAB.

■ Numele variabilelor fac distincţie între litere mici şi litere mari(adică Abc și aBc sunt nume diferite).

Înainte de a utiliza orice variabilă, puteți verifica dacă numele ales pentru aceasta este valid. Pentru aceasta se aplică următoarea funcție:

isvarname nume_variabilă

Unde nume_variabilă este numele variabilei pe care doriți să o verificați este corectă. Această funcție returnează 1 dacă numele este valid și 0 în caz contrar. De exemplu, numele 12_abc_3 8 este invalid deoarece începe cu un număr, deci funcţie dată returneaza 0.

>> isvarname 12_abc_3 8

Există mai multe nume rezervate de variabile în MATLAB. Variabilele cu astfel de nume sunt numite sistemică. Sunt setate după pornirea sistemului și pot fi utilizate în expresii matematice. Variabilele de sistem pot fi suprascrise, de ex. li se pot atribui alte valori dacă este necesar.

Principalele variabile ale sistemului MATLAB sunt enumerate mai jos.

■ i , j - unitate imaginară (rădăcină pătrată a lui -1) utilizată pentru a specifica partea imaginară a numerelor complexe.

■ pi - numărul π (π = 3,141592653589793).

■ eps - eroare a operaţiilor asupra numerelor în virgulă mobilă, de ex. intervalul dintre numărul 1.0 și următorul cel mai apropiat număr în virgulă mobilă (egal cu 2.2204e-16 sau 2-52).

■ ans - rezultat ultima operatie fără semn de atribuire.

■ inf - desemnarea infinitului maşinii.

■ NaN - prescurtare pentru cuvinte Nu un număr (nu un număr), folosit pentru a desemna un rezultat nedeterminat (de exemplu, 0/0 sau Inf /Inf).

■ realmin - număr minim modulo real (2 .22 51e-308, sau 2 -1022).

■ realmax - număr maxim modulo real (1,7977e+308, sau 21023).

În MATLAB, spre deosebire de alte limbaje de programare, tipurile de variabile nu sunt declarate în prealabil. Este suficient să atribuiți o valoare variabilei anumit tip. De exemplu, pentru a atribui o variabilă A valoarea 5, introduceți expresia pe linia de comandă A=5 (ca operator de atribuire este aplicat semnul egal) și apăsați tasta , după care programul va returna imediat valoarea acestei variabile.

>> A=5

După cum puteți vedea, în acest caz programul MATLAB nu este nevoie să atribuiți variabilei și să reprezinte rezultatul, deoarece variabila este setată A.

Dacă nu doriți ca valoarea să fie afișată imediat pe ecran după atribuirea unei valori unei variabile, terminați operația de atribuire cu punct și virgulă (;) și abia apoi apăsați .

Efectul punctului și virgulă se extinde dincolo de atribuiri. Dacă specificați acest caracter la sfârșitul oricărei expresii introduse pe linia de comandă, atunci rezultatul evaluării acestuia nu va fi afișat imediat pe ecran. În schimb, apare un prompt pentru următoarea comandă ().Une variabilei i se poate atribui un număr, o expresie aritmetică, un șir de caractere (închis în apostrofe) sau o expresie de caractere.

Pentru a crește eficiența programului, poate fi necesar să ștergeți din memoria computerului fie toate variabilele utilizate în sesiunea curentă, fie doar câteva dintre ele. Pentru a șterge memoria din variabilele din MATLAB, se folosește funcția clear, care are sintaxa:

· clear – distrugerea tuturor variabilelor;

· clear x - distrugerea variabilei x;

clear a b c - distrugerea unei familii de variabile ( argumentele pentru comanda clear urmează imediat numele comenzii și sunt separate prin spații).

Pentru a șterge tot conținutul ferestrei de comandă MATLAB, utilizați comanda c1c. După alegerea acestei comenzi, vor fi șterse doar informațiile introduse în fereastra de comandă, dar valorile variabilelor spațiului de lucru nu vor fi afectate. Acest lucru poate fi verificat tastând numele oricăreia dintre variabilele definite în sesiunea curentă la linia de comandă.

Sfârșitul lucrării -

Acest subiect aparține:

Personajele speciale și scopul lor

Limbajul de comunicare cu matlab .. simboluri și operatori ai limbajului .. operatorii de limbaj sunt simboluri ale operațiilor pe date numite operanzi în matlab, toate acceptate în general ..

Dacă aveți nevoie material suplimentar pe această temă, sau nu ați găsit ceea ce căutați, vă recomandăm să utilizați căutarea în baza noastră de date de lucrări:

Ce vom face cu materialul primit:

Dacă acest material s-a dovedit a fi util pentru dvs., îl puteți salva pe pagina dvs. de pe rețelele sociale:

1. ELEMENTE DE M-LANGUAGE 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 pot fi diverși compuși cu ajutorul unor elemente speciale de conectare, sunt utilizate atât în ​​linia de comandă, cât și în programe.

1.1. CONSTANTE BMATLAB

O constantă în MATLAB este informația care nu se modifică pe parcursul întregii sesiuni de comunicare. Constantele sunt fie definite de utilizator (definite de utilizator), fie definite de sistem (definite de sistem). Constantele utilizatorului sunt setate de utilizator și sunt folosite 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 notații speciale prin care se face referire la ele, de exemplu pi (=3,1416), eps (=2,2204e-016), realmin (=2,2251e-308), realmax (=1,7977e+). 308), i, j (jºi).

1.2. VARIABILELE INMATLAB

O variabilă în MATLAB este definită printr-un identificator, un tip, o locație în memoria computerului. Pentru a defini o variabilă în MATLAB, trebuie să selectați identificatorul (numele) variabilei (începe cu literă latină, în continuare - litere latine, cifre, caractere speciale) și utilizați această variabilă într-o instrucțiune de linie de comandă care stabilește valoarea variabilei (atribuire simplă, referire la unele funcții etc.).

  1. Variabile numerice: numere ordinare (reale) sau complexe, vectori, matrici și tablouri multidimensionale. Pentru un număr real sunt alocați 8 octeți, pentru un număr complex 16. Numerele întregi și 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 reală a numărului complex,

imag(Q) – parte imaginară a numărului setului,

abs(Q) – valoarea absolută a numărului stabilit,

conj(Q) – număr complement conjugat,

unghi(Q) – valoarea fazei (unghiului) numărului stabilit î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 conjugate.

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

A= ---à 1 2

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

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

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

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

reshape(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:

eye(m,n) - cele pe diagonala principală, restul sunt zerouri (eye(m) este matricea de identitate pătrată mxm)

ones(m,n) – matricea unilor

zeros(m,n) – matricea zerourilor

rand(m,n) – matrice mxn umplută cu numere aleatorii de la 0 la 1

C=round(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 de diagramă, cum ar fi A și zerouri.

triu(A) tril(A) este o matrice cu părți superioare (superioare) sau inferioare (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 evidențiat în culoare.

Fiecare caracter ocupă 2 octeți și este tratat ca element separat vector rând de caractere. Deci, dacă setăm operația de transpunere cvb’ , obținem un vector coloană cu 31 de elemente.

Puteți converti variabilele caracter în numere și invers.

De obicei sunt folosite la afișarea rezultatelor, graficelor, inscripțiilor, mesajelor.

Control variabil.

Metoda 1 - în fereastra Spațiu de lucru

Metoda 2 - comanda who - oferă o listă de definite momentul prezent variabile de timp.

3 moduri - comanda cui - dă mai mult informatii 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ă): numele funcției, setul de date de intrare (varargin) și setul de date de ieșire (varargout). În plus, sunt definite conceptele de număr de parametri de intrare (nargin) și numărul de parametri de ieșire (nargout).

Funcțiile din MATLAB sunt împărțite în definite de utilizator (definite, dezvoltate de utilizator) și de sistem (definite, specificate în sistem care nu necesită programare). Despre cum să creați funcții personalizate, vor fi discutate atunci când se iau în considerare problemele de programare. Odată creată și depanată, o funcție de utilizator nu este diferită de o funcție de sistem.

Funcțiile sistemului sunt împărțite în funcții încorporate și de bibliotecă. Funcțiile bibliotecii sunt stocate în sistem sub formă de programe în limbaj M scrise în fișiere cu un nume care se potrivește 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 un fișier m cu o funcție pentru calcularea valorii logaritmului zecimal (\toolbox\matlab\elfun\log10.m) pentru vizualizare. Când sunt executate, instrucțiunile acestor programe sunt mai întâi traduse în instrucțiuni sistem executiv computer (interpretat) și apoi executat. Funcțiile încorporate sunt stocate în sistem într-o formă compilată, nu necesită traducere și, din acest motiv, sunt executate mai rapid decât cele din bibliotecă. Directorul de sistem pentru astfel de funcții stochează fișiere numite similar celor din bibliotecă, dar care conțin doar comentarii privind utilizarea funcțiilor. De exemplu, puteți deschide un fișier legat de funcția de calcul al exponentului (\toolbox\matlab\elfun\exp.m).

1.4. EXPRESII ÎNMATLAB

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

Top articole similare