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);