Kako koristiti funkcije s više izlaza u MATLAB-u?
MATLAB korisnički definirana funkcija može uzeti jedan ili više ulaznih kao i izlaznih argumenata. Ulazni argumenti mogu biti vrijednost, matematički izraz ili jednostavno varijabla. Korisnik bi trebao znati točan broj i položaj ulaznih i izlaznih argumenata da bi ih koristio u funkciji.
Sintaksa korisničke definirane funkcije MATLAB dana je u nastavku:
funkcija [ y1,...,yN ] = zabavno ( x1,...,xM )
Evo, funkcija [y1,…,yN] = zabava(x1,…,xM) deklarira funkciju pod nazivom zabava koja traje x1,…,xM kao ulaz i povrat y1,…,yN kao izlaz. Prvi redak izvršnog koda funkcije mora sadržavati ovu izjavu o deklaraciji. Valjani nazivi funkcija moraju započinjati abecednim znakom i mogu biti slova, brojke ili podvlake.
Razmotrite neke primjere koji pokazuju kako koristiti funkciju s više izlaza u MATLAB-u.
Primjer 1
Ovo je osnovni MATLAB kod koji deklarira funkciju nazvanu stat izračunati srednju vrijednost i standardnu devijaciju vektorskih elemenata. Funkcija uzima vektor kao ulazni argument i vraća srednju vrijednost i standardnu devijaciju svih vrijednosti sadržanih u tom vektoru. Ovu funkciju spremamo u datoteku skripte pod nazivom stat .
funkcija [ znači, std ] = stat ( bar )
len = duljina ( bar ) ;
znači = iznos ( bar ) / samo;
std = sqrt ( iznos ( ( vect-srednja ) .^ 2 / samo ) ) ;
kraj
Bilješka : Preporuča se spremiti naziv datoteke skripte prema nazivu funkcije.
Nakon što je datoteka skripte spremljena, možete pozvati gore definiranu funkciju u naredbenom prozoru prosljeđivanjem vektora kao ulaza.
bar = [ 5 : 0,25 : 10 ] ;
[ ave,stdev ] = stat ( bar )
Izračunata srednja vrijednost i standardna devijacija prikazani su na ekranu.
Primjer 2
Ovo je osnovni MATLAB kod koji deklarira funkciju nazvanu stat izračunati srednju vrijednost i standardnu devijaciju vektorskih elemenata. Funkcija uzima vektor kao ulazni argument i vraća srednju vrijednost i standardnu devijaciju svih vrijednosti sadržanih u tom vektoru. Ovu funkciju spremamo u datoteku skripte pod nazivom stat.
funkcija [ znači, std ] = stat ( bar )len = duljina ( bar ) ;
značiti = ( iznos ( bar ) ) / samo;
std = sqrt ( iznos ( ( vect-srednja ) .^ 2 / samo ) ) ;
kraj
Pozivamo gore definiranu funkciju u drugoj datoteci skripte pod nazivom funk.m prosljeđivanjem vektora kao ulaznog argumenta.
bar = [ 5 : 0,25 : 10 ] ;[ ave,stdev ] = stat ( bar )
Kada pokrenemo funk.m datoteku, izračunati rezultati prikazani su na ekranu.
Bilješka : Kada pozivate funkciju u MATLAB-u, ona mora moći locirati odgovarajuću funkcijsku datoteku. Stavljanjem funkcijske datoteke i datoteke skripte u istu mapu osiguravate da MATLAB može pronaći i ispravno izvršiti funkciju.
Primjer 3
Ovaj MATLAB primjer će izračunati maksimalnu visinu i udaljenost projektila i nacrtati putanju. Za ovo definiramo funkciju koja ima 2 ulazna argumenta v0 kao početnu brzinu i theta kao kut, i 2 izlazna argumenta koji su hmax predstavlja maksimalnu visinu i dmax predstavlja maksimalnu udaljenost. Spremamo funkciju u datoteku skripte pod nazivom projektil.m datoteka.
funkcija [ hmax, dmax ] = putanja ( v0, theta )g = 9.81 ;
v0x =v0 * cos ( theta * pi / 180 ) ;
v0y =v0 * bez ( theta * pi / 180 ) ;
thmax =v0y / g;
hmax =v0y^ 2 / ( 2 * g ) ;
shot = 2 * thmax;
dmax =v0x * sve;
tplot =linspace ( 0 shot 200 ) ;
x =v0x * tplot;
i =v0y * tplot- 0,5 * g * tplot.^ 2 ;
zemljište ( x,y )
xlabel ( 'UDALJENOST (m)' )
ylabel ( 'VISINA (m)' )
titula ( 'PROJEKTIL' 'PUTANJA' )
Nakon što spremimo ovu funkcijsku datoteku, pozvati ćemo je u naredbenom prozoru prosljeđivanjem vrijednosti početne brzine u m/s i theta u stupnjevima. Izračunata visina, udaljenost i stvorena ploha prikazani su u danom izlazu.
Zaključak
Dobivanje više izlaza iz funkcije može biti korisno iz nekoliko razloga: kao što je poboljšanje učinkovitosti koda, pojednostavljenje koda, poboljšanje funkcionalnosti i više. Postoji nekoliko načina za dobivanje više izlaza iz funkcije, uključujući kroz naredbeni prozor, datoteku skripte ili funkcijske datoteke. Ovaj vodič pokazao je korištenje MATLAB-ovih funkcija s višestrukim izlazima pružajući neke korisne primjere.