Órai feladatok megoldása
1. feladat: Ábrázoljuk az emberek testtömegindexének (súly kg-ban osztva magasság négyzetével m-ben) eloszlását az adatok.csv fájl alapján. Derítsük ki, hogy
- Hány olyan ember van akinek testtömegindexe 18 alatt van?
- Hány olyan ember van akinek testtömegindexe 25 felett van?
- Hány olyan ember van akinek testtömegindexe 18 és 25 között van?
ad=dlmread('adatok.csv');
bmi=ad(:,2)./ad(:,1).^2*1e4;
kevesebb18=sum(bmi<18)
tobb25=sum(bmi>25)
kozte1825=sum(bmi<25 & bmi>18)
kevesebb18 = 593 tobb25 = 15057 kozte1825 = 4325
2. feladat: Válaszoljuk meg az előbbi kérdéseket külön-külön a 30 év alatti és a 45 év feletti emberekre is.
ad=dlmread('adatok.csv');
30 alatti emberek:
ifju=ad(:,3)<30; ifjubmi=ad(ifju,2)./ad(ifju,1).^2*1e4; kevesebb18=sum(ifjubmi<18) tobb25=sum(ifjubmi>25) kozte1825=sum(ifjubmi<25 & ifjubmi>18)
kevesebb18 = 93 tobb25 = 2541 kozte1825 = 682
45 felett
kozepkoru=ad(:,3)<30; kozepbmi=ad(ifju,2)./ad(ifju,1).^2*1e4; kevesebb18=sum(kozepbmi<18) tobb25=sum(kozepbmi>25) kozte1825=sum(kozepbmi<25 & kozepbmi>18)
kevesebb18 = 93 tobb25 = 2541 kozte1825 = 682
3. feladat: Próbáljuk ki, mit történik, ha az A=[3 4 2 3; 1 3 5 1; -9 5 2 5] mátrixot ábrázoljuk, azaz kiadjuk a plot(A) parancsot. Keressünk magyarázatot a látottakra.
A plot a mátrix elemeit oszloponként tekinti egy vektornak, és az összes oszlopot ábrázolja egy ábrán.
4. feladat: Ábrázoljuk az x(t)=t*cost(t), y(t)=t*sin(t) paraméteres görbét a síkon, a t paraméter értéke menjen 0 és 10 között. Lássuk el az ábrát feliratokkal, majd mentsük egy .jpg fájlba.
function csigabiga t=linspace(0,10,100); plot(t.*sin(t),t.*cos(t)) xlabel('x tengely') ylabel('y tengely') title('Csigavonal') text(0,0,'Csiga közepe') text(10*sin(10),10*cos(10),'Csiga vége') saveas(gca,'csiga.jpg')
5. feladat: Írjunk egy olyan fvElojel(a,b,f) nevű függvényt, melynek első két bemenete egy-egy valós szám, amelyek egy intervallum két végpontját jelentik (és a<b), a harmadik bemenete pedig egy függvény. A fvElojel(a,b,f) ábrázolja az f függvényt az [a,b] intervallumon, valamint írja ki a képernyőre, hogy a két végpontban eltérő-e a függvényértékek előjele. A függvények ne legyen kimenete.
function fvElojel(a,b,f) t=linspace(a,b); plot(t,f(t)) if f(a)*f(b)<0 fprintf('Az intervallum végpontjaiban a függvény értékek előjele különböző. \n') else fprintf('Az intervallum végpontjaiban a függvény értékek előjele nem különböző. \n') end
6. feladat: Rajzoljunk egy 1 sugarú felső félgömböt.
function Felgomb
x=linspace(-1,1);
y=x;
[xx,yy]=meshgrid(x,y);
z1=1-xx.^2-yy.^2;
z1(z1<0)=0;
z1=sqrt(z1);
mesh(x,y,z1)