Matlab pradžiamokslis  (1)

Matlab - tai viena seniausių ir galingiausių specialios paskirties kompiuterinių programų, skirtų automatizuoti mokslinius ir inžinierinius skaičiavimus. Darbas su šia galinga programa nėra sudėtingas, ypač turintiems bent minimalius programavimo įgūdžius.


Prisijunk prie technologijos.lt komandos!

Laisvas grafikas, uždarbis, daug įdomių veiklų. Patirtis nebūtina, reikia tik entuziazmo.

Sudomino? Užpildyk šią anketą!

Matlab terpėje galima dirbti dviem režimais:

  • Tiesiogiai darbiniame lange arba dar vadinamame kalkuliatoriuje. Komandos įvedamos atskirai. Padarius komandų įvedimo klaidą viską reikia kartoti nuo pradžių. Komandos vykdomos iš karto, o galutinis skaičiavimo rezultatas nepateikiamas iki tol, kol neaptinkama komanda be kabliataškio.
  • M-files kūrimo režimu. M-files saugomos vartotojo sukurtos ir vidinės Matlab funkcijos. Skirtingai nuo darbinio lango M-files turi galimybę programą redaguoti, komentuoti, taisyti klaidas, daryti pakeitimus ir išsaugoti kietame diske. M-files vykdomi tik jį sukompiliavus arba padarius tieisioginį kreipimąsį iš darbinio lango arba kitos programos. Kadangi M-files nevykdoma iš karto, klaidos juose aptinkamos tik po kompiliavimo.

Įjungus Matlab programą, ekrane parodomas pagrindinis jos langas (1 pav.).

Matlab programos pradinis langas

1 pav. Matlab programos pagrindinis langas

Kadangi dirbant tiesioginiam komandų įvedimo režimu nėra galimybės programos teksto išsaugojimui ir redagavimui, dažniausiai naudojamas M-files redagavimo langas. Tiesioginis komandų įvedimo langas panaudojamas gauti informacijai apie funkcijas arba tiesioginiam ir greitam funkcijos išbandymui.

Pavyzdžiui norint gauti informaciją apie žinomą funkciją, rašoma komanda help funkcijos_pavadinimas:

>> help abs 

ABS Absolute value.
ABS(X) is the absolute value of the elements of X. When
X is complex, ABS(X) is the complex modulus (magnitude) of
the elements of X.

See also SIGN, ANGLE, UNWRAP.

Overloaded methods
help iddata/abs.m
help sym/abs.m

>>

Kai iš help failo nelabai aišku funkcijos pritaikymas komandinėje eilutėje patogu pasitikrinti funkcijos veikimą:

>> abs(-5) 

ans =

5

>> abs(4+i*3)

ans =

5

>>

Jei nežinomas konkretus funkcijos pavadinimas, pasinaudoti tiesiogiai komanda help funkcijos_pavadinimas nepavyks. Tokiu atveju reikia pasileisti Matlab programos Help langą ir pagal raktinius žodžius atlikti paiešką.

Programavimas Matlab terpėje atliekamas M-files redagavimo lange, kuris paleidžiamas paspaudus ikoną New M-files (1 pav.) arba pasirinkus meniu punktą File–>New–>M-file. Atsidaro naujas redagavimo langas (2 pav.)

Programos rašymo langas

2 pav. M-file redagavimo langas

Parašius programą ją sukompiliuoti ir įvykdyti galima keliais būdais: 

  • paspaudus kompiliavimo ikoną (2 pav.); 
  • pasirinkus komandą Debug–>Run; 
  • paspaudus klavišą F5; 
  • komandinėje eilutėje surinkus M-files pavadinimą.

Matlab programa gali dirbti tik su tomis programomis, kurios patalpintos į jo darbinį katalogą, kurio adresas matomas pagrindiniame programos lange (1 pav.). Jei bandome kreiptis į M-file, kuris patalpintas ne darbiniame kataloge, Matlabas sugeneruos klaidos pranešimą:

>> testine 
??? Undefined function or variable 'testine'.

>>

Todėl M-file reikia saugoti arba darbiniame kataloge (pagal nutylėjimą katalogas work), arba bet kokiame kitame kataloge, tik tuomet reikia Matlab terpėje nurodyti naują darbinį katalogą. Tai atliekama dviem būdais: 

  • Automatinis darbinio katalogo nustatymas. Šiuo atveju M-file išsaugomas bet kokiame kataloge ir vykdomas failo kompiliavimas (F5 klavišas, kompiliavimo įkona arba meniu punktas). Matlab programa išmeta lentele, kurioje prašoma pasirinkti darbinį katalogą (3 pav.). Atsiradusiame lange nustatymai paliekami pagal nutylėjimą (Change MATLAB current directory) ir spaudžiamas mygtukas OK. Darbinė direktorija pakeičiama į tą, kurioje išsaugotas kompiliuojamas M-file.

Darbinio katalogo pasirinkimas M-file kompiliavimo metu

3 pav. Darbinio katalogo pasirinkimas M-file kompiliavimo metu

  • Rankinis darbinio katalogo nustatymas. Tai galima atlikti pagrindiniame Matlab programos lange skiltyje Current Directory (1 pav.). Šioje skiltyje reikia nurodyti tikslų adresą iki naujo darbinio katalogo.

Programavimas Matlab aplinkoje

Programos rašomos M-file redagavimo lange. Patartina programos pradžioje parašyti trumpą komentarą apie ką yra ta programa. Matlab aplinkos sintakse labai panaši į C kalbos sintaksę, su specifinėm Matlab galimybėm arba ribojimais. Dažniausiai naudojami programavimo elementai:

  • Komentarai rašomi po ženklo % :
%testine programa demonstruoti darbui su Matlab aplinka 
  • Reikšmės priskyrimas kintamajam su lygybės ženklu = :
k=5 
  • Aritmetinės operacijos: +, -, *, / ;
  • Palyginimo operacijos <, >, <=, >=,~= (nelygu) ,== ;
  • Trigonometrinės funkcijos sin(α), cos(α), tan(α):
>> k=sin(30*pi/180) 

k =

0.5000

>>
  • Sisteminiai kintamieji:

i, j           - kvadratinė šaknis iš –1 (menamas 1);
pi            – skaičius 3.1415926…;
realmin   – mažiausias skaičius (2-1022);
realmax  – didžiausias skaičius (21023);
inf           – mašininė begalybė;
ans          – kintamasis, kuriame saugoma paskutinė apskaičiuota reiškinio reikšmė.

išvedamų rezultatų formatą galima parinkti komanda format. Žemiau pateikta lentelė iliustruoja kai kuriuos komandos format naudojimo pavyzdžius, išvedant išraiškos 100/3 rezultatą:

format short                 33.3333
format short e              3.3333e+001
format long                   33.33333333333334
format long e                3.333333333333334e+001
format short g              33.333
format long g                33.3333333333333
format hex                    4040aaaaaaaaaaab

>> format short e 
>> 100/3

ans =

3.3333e+001

>>
  • sekų formavimas: pradinė_reikšmė:žingsnis:galutinė_reikšmė:
>> k=1:2:10 

k =

1 3 5 7 9

>>

jei žingsnis nenurodomas, Matlab traktuoja jį kaip 1:

>> k=1:10 

k =

1 2 3 4 5 6 7 8 9 10

>>
  • grafinis duomenų atvaizdavimas:

plot                 - sukuriamas vektoriaus ar matricos stulpelių grafikas;
fplot               - sukuriamas grafikas, kai yra nurodyta funkcijos analitinė išraiška;
stem              - sukuriamas vektoriaus ar matricos stulpelių taškinis grafikas;
title                - įterpiamas grafiko pavadinimas;
xlabel            - įterpiamas x ašies pavadinimas;
ylabel            - įterpiamas y ašies pavadinimas;
text                - nurodytas tekstas įterpiamas į grafiką;
gtext              - nurodytas tekstas įterpiamas į grafiką naudojant pelę;
grid                - įjungiamas arba išjungiamas koordinačių tinklelis;
figure             - sukuriamas arba suaktyvinamas grafinis langas; 

Ciklinės ir sąlygos struktūros Matlab terpėje

Ciklinę struktūrą Matlab terpėje galima suformuoti dviem būdais – panaudojant ciklus for ir while.

  • for ciklo struktūra:

for i=pradine_reiksme:galine_reiksme
operacija 1;
operacija 2;
....
operacija n;
end

for i=1:10 %ciklo formavimas 
x(i,1)=5*i; %dvimacio masyvo formavimas
end %ciklo pabaiga
  • while ciklo struktūra:

while i<maksimali_reiksme
x(i,1)=5*i;
i=i+1;
end

Naudojant while ciklą negalima pamiršti ciklo skaitliuko didinimo operacijos, kitaip gausis amžinas ciklas!

while i<10 %ciklo formavimas 
x(i,1)=5*i; %dvimacio masyvo formavimas
i=i+1; %ciklo skaitliuko didinimas
end %ciklo pabaiga

Sąlygos struktūros formavimui dažniausiai naudojama komanda if. Jos bendra struktūra:

if lyginamas_dydis < ribine_reiksme
    
operacija 1; 
  operacija 2;
  ..
  operacija n;
else
  operacija 1
  operacija 2
  ..
  operacija n;
end;

Galima naudoti dalinę if komandą:

if lyginamas_dydis < ribine_reiksme
  operacija 1;
  operacija 2;
  ..
  operacija n;
end;

if i<12 %salyga 
x(i,1)=0; %operacija, jei salyga tenkinama
else
x(i,1)=10; %operacija, jei s1lyga netenkinama
end; %salygos pabaiga
 

Pasidalinkite su draugais
Aut. teisės: www.technologijos.lt
(6)
(2)
(4)

Komentarai (1)

Susijusios žymos: