Gyakorló óra
1. feladat: Írjunk olyan kisBetuk(s) nevű függvényt, amelynek bemenete egy sztring. A függvény kimenete legyen a kisbetűk aránya az s-ben lévő betűk között (csak az angol ábécé betűit ideértve).
function ki=kisBetuk(s)
asciikod=double(s);
kisbetu=length(asciikod(asciikod <=122 & asciikod>=97));
osszesbetu=length(asciikod((asciikod <=90 & asciikod>=65) | (asciikod <=122 & asciikod>=97)));
ki=kisbetu/osszesbetu;
2. feladat:Írjunk olyan gyakorimg(s1) nevű függvényt amelynek bemenete egy s1 sztring, és a függvény kimenete, hogy melyik a leggyakoribb magánhangzó s1-ben (csak az angol ábécé magánhangzóit ideértve).
function ki=gyakorimg(s) asciikod=double(lower(s)); betuk=zeros(26,1); for i=97:122 if char(i)=='a' || char(i)=='e' || char(i)=='i' || char(i)=='o' || char(i)=='u' betuk(i-96)=length(asciikod(asciikod==i)); end end [elofordulas,sorszam]=max(betuk); ki=char(sorszam+96);
3. feladat: Írjunk egy olyan korokc(r, x0, y0) nevű függvényt, amelyet ha 0 bemenettel hívunk meg, akkor kirajzol egy origó középpontú 1 sugarú kört, ha eggyel akkor egy origó középpontú r sugarú kört, ha hárommal, akkor egy (x0, y0) középpontú r sugarú kört.
function korokc(r,x0,y0) if nargin==0 x0=0; y0=0; r=1; elseif nargin==1 x0=0; y0=0; end t=linspace(0,2*pi); plot(r*cos(t)+x0,r*sin(t)+y0);
4. feladat: Írjunk egy olyan statisztikak(v,c,d) nevű függvényt, melynek bemenete egy v oszlopvektor és két valós szám. Ha csak egy bemenettel hívjuk meg a függvényt, akkor a kimenet legyen a v-ben szereplő számok átlaga és terjedelme (a legkisebb és legnagyobb elem különbsége), ha hárommal, akkor pedig a v vektor elemei közül a c és d számok közé eső elemeinek átlaga és terjedelme.
function [atlag, terjedelem]=statisztikak(v,c,d) if nargin==1 c=min(v); d=max(v); end atlag=mean(v(v>=c & v<=d)); terjedelem=max(v)-min(v);
5. feladat: Írjunk olyan interpolals(x,y,x0) nevű függvény Matlabban, amelynek bemeneti közül az első valós számok egy sorvektorban, a második bemenet pedig egy függvény helyettesítési értékei ezen pontokban szintén egy sorvektorban adva. A függvény kimenete legyen az ezen pontokra illesztett spline interpoláló polinom helyettesítési értéke az x0 pontban. Ha x0 -t nem adjuk meg (azaz csak 2 bemenettel hívtuk meg a függvényt), akkor a spline interpolált helyettesítési értékét a 0-ban számítsa ki a függvény, és ez legyen a visszatérési érték.
function ki=interpolals(x,y,x0) if nargin==2 x0=0; end ki=interp1(x,y,x0,'spline');
6. feladat: Írjunk olyan feldolgozo(v) nevű függvényt, amelynek bemenete egy v cell típusú osz- lopvektor, amely tartalmazhat lebegőpontos számokat és sztringeket is, de más típusú adatot nem. A függvény kimenete legyen a v vektorban szereplő 10 és 20 közötti számok minimuma és maximuma (azt, hogy valami szám-e az isnumeric() függvénnyel ellenőrizhetjük).
function [minimum,maximum]=feldolgozo(v) szamok=[]; for i=1:length(v) if isnumeric(v{i}) if v{i}<20 && v{i}>10 szamok=[szamok,v{i}]; end end end minimum=min(szamok); maximum=max(szamok);