Matlab alapok. Baran Ágnes. Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Hasonló dokumentumok
Numerikus matematika

Baran Ágnes. Gyakorlat Komplex számok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 16

MATLAB alapismeretek II.

Baran Ágnes. Gyakorlat Komplex számok. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 33

Internet programozása. 3. előadás

Matlab alapok. Vektorok. Baran Ágnes

MATLAB. 3. gyakorlat. Mátrixműveletek, címzések

end function Az A vektorban elõforduló legnagyobb és legkisebb értékek indexeinek különbségét.. (1.5 pont) Ha üres a vektor, akkor 0-t..

Webprogramozás szakkör

Vezérlési szerkezetek

Matematikai programok

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 3. előadás

4. Előadás Programvezérlő utasítások. (begyakorló feladatok)

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei. Atomerőművek üzemtana

Matlab alapok. Baran Ágnes

Példatár a bevezetés a Matlab programozásába tárgyhoz

Atomerőművek üzemtanának fizikai alapjai. MATLAB használata

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

1. Feladatlap. Függvények. Mőveletek Matlab nyelvben. Példa inverz osztásra >>d=2\1 d= Információkérési lehetıségek help utasítás

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

MATLAB alapismeretek III.

% % MATLAB alapozó % % , Földváry Lóránt % Laky Piroska (kiegészítés)

Baran Ágnes. Gyakorlat Numerikus matematika. Baran Ágnes Matematika Mérnököknek Gyakorlat 1 / 79

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

Informatika terméktervezőknek

SCILAB programcsomag segítségével

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

Szkriptnyelvek. 1. UNIX shell

Matematikai programok

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

Készítette: Nagy Tibor István Felhasznált irodalom: Kotsis Domokos: OOP diasor Zsakó L., Szlávi P.: Mikrológia 19.

A MATLAB alapjai. Kezdő lépések. Változók. Aktuális mappa Parancs ablak. Előzmények. Részei

A félév során előkerülő témakörök

2. Milyen értéket határoz meg az alábbi algoritmus, ha A egy vektor?. (2 pont)

S z á m í t ó g é p e s a l a p i s m e r e t e k

// keressük meg a legnagyobb faktoriális értéket, ami kisebb, // mint százmillió

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

A C programozási nyelv II. Utasítások. A függvény.

Lineáris algebra gyakorlat

Szoftvertervezés és -fejlesztés I.

Vezérlési szerkezetek. Szelekció Ciklusok

7. Laboratóriumi gyakorlat: Vezérlési szerkezetek II.

A C# programozási nyelv alapjai

1. Előadás Matlab lényeges vonásai,

Programozás C- és Matlab nyelven C programozás kurzus BMEKOKAM603 Függvények. Dr. Bécsi Tamás 6. Előadás

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Java programozási nyelv

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Baran Ágnes. Gyakorlat Vektorok, mátrixok, lineáris egyenletrendszerek. Baran Ágnes Matematika Mérnököknek

A MATLAB PROGRAMOZÁSA

Imperatív programozás

Szelekció. Döntéshozatal

A számok kiíratásának formátuma

1. Jelölje meg az összes igaz állítást a következők közül!

BASH script programozás II. Vezérlési szerkezetek

1. Alapok. #!/bin/bash

Gauss elimináció, LU felbontás

Bevezetés a programozásba I.

Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása

Változók. Mennyiség, érték (v. objektum) szimbolikus jelölése, jelentése Tulajdonságai (attribútumai):

Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás

12. előadás. Egyenletrendszerek, mátrixok. Dr. Szörényi Miklós, Dr. Kallós Gábor

Mintavételes szabályozás mikrovezérlő segítségével

Algoritmizálás + kódolás C++ nyelven és Pascalban

6. előadás. Matlab 1. (Ismerkedés, környezet, adattípusok) Dr. Szörényi Miklós, Dr. Kallós Gábor. Széchenyi István Egyetem

11. gyakorlat Sturktúrák használata. 1. Definiáljon dátum típust. Olvasson be két dátumot, és határozza meg melyik a régebbi.

BME MOGI Gépészeti informatika 5.

Programozási nyelvek JAVA EA+GY 1. gyakolat

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

BBTE Matek-Infó verseny mintatételsor Informatika írásbeli vizsga

Algoritmizálás és adatmodellezés 2. előadás

BME MOGI Gépészeti informatika 2.

1. Feladat: beolvas két számot úgy, hogy a-ba kerüljön a nagyobb

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

Vektortér. A vektortér elemeit vektornak, a test elemeit skalárnak nevezzük. Ezért a függvény neve skalárral való szorzás (nem művelet).

A programozás alapjai 1 Rekurzió

Memento kurzus: Matlab bevezető

INFORMATIKA tétel 2019

7. gyakorlat. Lineáris algebrai egyenletrendszerek megoldhatósága

Programozás C nyelven FELÜLNÉZETBŐL elhullatott MORZSÁK. Sapientia EMTE

A programozás alapjai

Programozási segédlet

KIEGYENLÍTŐ SZÁMÍTÁSOK, ILLESZTÉSEK ALAPJAI

Függvények Függvények


Vezérlési szerkezetek

Óbudai Egyetem. C programozási nyelv

INFORMATIKA javítókulcs 2016

Egyszerű programozási tételek

Bázistranszformáció és alkalmazásai 2.

Smalltalk 2. Készítette: Szabó Éva

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

1. Mátrixösszeadás és skalárral szorzás

Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs

/* Az iter függvény meghívása és a visszatérő érték átadása a gyok változóba */ gyok = iter( n, a, e ) ;

Felvételi tematika INFORMATIKA

Informatika E FAKT , = ±

Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.

A fizetendő összegből a 35 év fölötti tulajdonos 20 % kedvezményt kap.

PYTHON. Avagy hosszú az út a BioPythonig

Átírás:

Matlab alapok Baran Ágnes Elágazások, függvények Baran Ágnes Matlab alapok Elágazások, függvények 1 / 15

Logikai kifejezések <, <=, >, >=, ==, = (két mátrixra is alkalmazhatóak, ilyenkor elemenként történik az összehasonĺıtás) A&B, A B, A, xor(a,b) (az kiértékelés elemenként) Logikai függvények all(a) egy sorvektorral tér vissza, oszloponként megvizsgálja, hogy minden elem 0-tól különböző-e (ugyanaz, mint all(a,1)) all(a,2) egy oszlopvektorral tér vissza, soronként megvizsgálja, hogy minden elem 0-tól különböző-e any(a) egy sorvektorral tér vissza, oszloponként megvizsgálja, hogy van-e 0-tól különböző elem (ugyanaz, mint any(a,1)) any(a,2) egy oszlopvektorral tér vissza, soronként megvizsgálja, hogy van-e 0-tól különböző elem Baran Ágnes Matlab alapok Elágazások, függvények 2 / 15

Logikai függvények ind=find(a) a nemnulla elemek sorszámaival tér vissza, ahol az elemek számozása oszlopfolytonosan történik. Ha A egy sorvektor, akkor a visszaadott érték is az, egyébként oszlopvektor ind=find(a,n) az A első n darab nemnulla elemének sorszámával tér vissza ind=find(a,n,last) az A utolsó n darab nemnulla elemének sorszámával tér vissza [rowi,coli]=find(a) a nemnulla elemek sor- és oszlopindexeivel tér vissza [rowi,coli,elem]=find(a) a nemnulla elemek sor- és oszlopindexeivel, illetve a nemnulla elemekkel tér vissza Baran Ágnes Matlab alapok Elágazások, függvények 3 / 15

Logikai függvények A find függvény argumentumába A helyett bármilyen logikai kifejezés is beírható, pl: find(a<=b) find(a==5) find(a>5,4) find(a>5,4,last) find(a<5 & A>4) find(abs(a-2)<=0.01) logical(a) egy logikai tömbbel tér vissza: az A nemnulla elemeinek a logikai 1, a nulla elemeknek a logikai 0 felel meg Baran Ágnes Matlab alapok Elágazások, függvények 4 / 15

Elágazások, if-else if logikai kifejezés utasítások elseif logikai kifejezés utasítások else utasítások Példa N=input('Adjon meg egy egesz szamot: '); if mod(n,7)==0 disp('oszthato 7-tel'); elseif mod(n,13)==0 disp('oszthato 13-mal'); else disp('sem 7-tel sem 13-mal nem oszthato'); Baran Ágnes Matlab alapok Elágazások, függvények 5 / 15

switch switch kifejezés case kifejezés utasítások case kifejezés utasítások... otherwise utasítások Baran Ágnes Matlab alapok Elágazások, függvények 6 / 15

for-ciklus for ciklusvaltozo=vektor utasitasok Példák s=0; for i=1:100 s=s+i; s=100; for i=98:-2:2 s=s+i; a=[4 2-1 5]; s=0; for i=a s=s+1/i; Baran Ágnes Matlab alapok Elágazások, függvények 7 / 15

while-ciklus while logikai kifejezés utasitasok Példa n=input('n= '); F=[1, 1, zeros(1,n-2)]; i=2; while i<n F(i+1)=F(i)+F(i-1); i=i+1; S=['A Fibonacci-sorozat elso ' num2str(n) ' tagja:']; disp(s); disp(f); Baran Ágnes Matlab alapok Elágazások, függvények 8 / 15

Vezérlő utasítások break kilép az aktuális for- vagy while-ciklusból (csak a legbelsőből) continue a for- vagy while-ciklus következő lépésével folytatja pause billentyűlenyomásig felfüggeszti a program futását pause(n) n másodpercre felfüggeszti a program futását return leálĺıtja az m-fájl futását error( uzenet ) az m-fájl futása uzenet hibaüzenettel befejeződik Baran Ágnes Matlab alapok Elágazások, függvények 9 / 15

Függvények írása A Matlab-függvények szerkezete: function kimenovaltozok=fvneve(bemenovaltozok) utasitasok Fontos! A fenti függvényt fvneve.m néven kell elmenteni. Példák. function y=masodf(x) y=2*x.ˆ 2-3*x+5; Ekkor a y=masodf(x) utasítás eredménye a 2x 2 3x + 5 kifejezés értéke, ahol x akár vektor, vagy mátrix is lehet, ebben az esetben a függvény elemenként hajtódik végre és, y is vektor, vagy mátrix (ezt az teszi lehetővé, hogy a fv-ben minden művelet végrehajtható mátrixokra is, mivel a négyzetreemelés jele elé kitettük a. jelet) Baran Ágnes Matlab alapok Elágazások, függvények 10 / 15

Példa. Nemnegatív számok geometriai, számtani és négyzetes közepe. function [G,A,N]=kozepek(x) if all(x>=0) A=mean(x); N=sqrt(mean(x.^2)); G=nthroot(prod(x),length(x)); else error('a vektornak van negativ eleme') Hívása pl.: [k1,k2,k3]=kozepek(x) (mindhárom közepet visszaadja) k=kozepek(x) (csak az elsőt) [M,S]=kozepek(x) (csak az első kettőt) [,,k]=kozepek(x) (csak a harmadikat) Baran Ágnes Matlab alapok Elágazások, függvények 11 / 15

Anoním függvények, function handle Függvényeket definiálhatunk parancssorban is: >> f1= @(x) x.*sin(x); Ilyen módon az f 1(x) = x sin(x) függvényt definiáltuk, hívása pl.: >> y=f1(pi/4) y= 0.5554 A @ szimbólum után zárójelben szerepelnek a függvény változói (most x), ezt követi a függvény (ez egy ú.n. anoním függvény). Az = baloldalán szereplő változó (most f1) egy ú.n.,,function handle típusú változó lesz. Baran Ágnes Matlab alapok Elágazások, függvények 12 / 15

Akár többváltozós függvényeket is megadhatunk így: >> f2= @(x,y) x.^2+x.*y-y+3; Ekkor pl. >> z=f2(2,-1) z= 6 A function handle tárolja azon változók értékét is, amelyek szükségesek a függvény kiértékeléséhez: >> a=2.5; b=3; >> f3= @(x) a*sin(x)+b*cos(x); >> y=f3(-4) y= -0.0689 >> clear a b >> y=f3(-4) y= -0.0689 Baran Ágnes Matlab alapok Elágazások, függvények 13 / 15

Feladatok Legyen x = [0 1 2 0 4 4] és y = [ 1 2 3 1 0 4]. Vizsgálja meg az alábbi logikai kifejezések értékét! (1) x == y (2) x <= y (3) x > y (4) x > 0 (5) y <= 3 (6) x y (7) x&y Az előző feladat vektoraival vizsgálja meg az alábbi kifejezések értékét (1) find(x == y) (2) find(x <= y) Legyen a=rand(1,20) Készítse el azt a b vektort, amely az a 0.5-nél nagyobb elemeit tartalmazza! Baran Ágnes Matlab alapok Elágazások, függvények 14 / 15

Feladatok Írjon egy-egy Matlab függvényt, amely tetszőleges n esetén előálĺıtja az alábbi mátrixokat n n-es méretben! 1 0 0 0 0 2 2 2 2 2 0 2 0 0 0 A = 3 0 3 0 0 0 6 0 4 0, B = 0 2 2 2 2 0 0 2 2 2 0 0 0 2 2 0 0 9 0 5 0 0 0 0 2 Írjon egy függvényt, mely adott A mátrix esetén előálĺıtja azt a B mátrixot, amelyet úgy kapunk, hogy az A minden sorának végére odaírjuk az abban a sorban álló elemek átlagát! Baran Ágnes Matlab alapok Elágazások, függvények 15 / 15

Feladatok Írjon egy Matlab függvényt, amely adott a és x 0 pozitív valós számok és n pozitív egész szám esetén előálĺıtja az x k+1 = 1 ) (x k + axk, k = 0, 1,... 2 sorozat x n tagját! Írjon két függvényt, melyek adott x vektor esetén kiszámítják azt az y vektort, melynek minden koordinátája 1-gyel nagyobb az x vektor megfelelő koordinátájánál! Az első függvényben for-ciklussal koordinátánként végezze a műveletet, a másodikban használja a vektorizált alakot (y=x+1). Mérje le a futási időket akkor, amikor a függvényeket egy 1000000 elemű véletlen vektorral hívja! (Használja a tic és toc függvényeket.) Baran Ágnes Matlab alapok Elágazások, függvények 16 / 15