MATLAB jelenleg 6.5-ös változat (R13)

Slides:



Advertisements
Hasonló előadás
A sin függvény grafikonja
Advertisements

Szerver oldali programozás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Koordináták, függvények
Tömbök C#-ban.
Matematika és Tánc Felkészítő tanár: Komáromi Annamária
3. előadás (2005. március 1.) Utasítások, tömbök
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Maple Vs. Sage Vs. Geogebra
JavaScript.
Programozási nyelvek.
10. előadás (2004. április 20.) A C előfordító (folytatás) Néhány hasznos compiler opció Egy tanulságos könyvtári függvény Változó hosszúságú argumentum.
5. előadás (2005. március 22.) Függvények definíciója, deklarációja, hívása Enumerációs adattípus 1.
Programozás II. 3. Gyakorlat C++ alapok.
A CLIPS keretrendszer CLIPS "C" Language Integration Production System.
Készítette: Pető László
Java programozási nyelv 2. rész – Vezérlő szerkezetek
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Szombathely Dinamikus WEB programozás: PHP és JSP.
Operációs rendszerek gyakorlat sed, awk parancsok.
Lénárt Anett egyetemi adjunktus - PTE PMMK Rendszer- és Szoftvertechnológia Tanszék Előadás JavaScript Tananyag: W eb - programozás.
Vizuális és web programozás II.
A JAVA TECHNOLÓGIA LÉNYEGE Többlépcsős fordítás A JAVA TECHNOLÓGIA LÉNYEGE Platformfüggetlenség.
ISZAM III.évf. részére Bunkóczi László
WEB Technológiák ISAPI ME Általános Informatikai Tsz. dr. Kovács László.
Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék
Operációs rendszerek gyakorlat 4. Gyakorlat Vakulya Gergely.
PHP I. Alapok. Mi a PHP? PHP Hypertext Preprocessor Szkriptnyelv –Egyszerű, gyors fejlesztés –Nincs fordítás (csak értelmező) Alkalmazási lehetőségek:
C nyelv utasításai.
A PHP (PHP: Hypertext Preprocessor) nyílt forráskódú, számítógépes szkriptnyelv, legfőbb felhasználási területe a dinamikus weboldalak készítése. Emiatt.
Összetett adattípusok
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Tömbök és programozási tételek
Készítette: Csíki Gyula
Hernyák Zoltán Programozási Nyelvek II.
A D programozási nyelv Angeli Dávid. Nagy vonalakban  C++  
Java programozási nyelv Vezérlési szerkezetek
Objektum orientált programozás
A Visual Basic nyelvi elemei
Power Lutár Patrícia Pellek Krisztián.  -ltLess than  -leLess than or equal to  -gtGreater than  -geGreater than or equal to  -eqEqual to  -neNot.
1 Mivel foglalkoz(t)unk a laborokon? 1.hét: Word dokumentumok 1.hét: Word dokumentumok tagolása, tartalomjegyzék, ábrák számozása, hivatkozások, egyenlet-szerkesztő.
HTML ÉS PHP (Nagyon) rövid áttekintés. ADATBÁZISRENDSZEREK MŰKÖDÉSI SÉMÁJA Felh. interakció DB Connector MySQL ? A gyakorlaton:
Fontos tudnivalók A MATLAB egy fajta objektummal dolgozik (Mátrix)
Programozás, programtervezés
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
CUDA C/C++ programozás CUDA C bevezetés A segédanyag készítése a TÁMOP A/ Nemzeti Kiválóság Program című kiemelt projekt keretében.
Algoritmizálás, adatmodellezés
A 2. géptermi beszámoló VBA anyagának összefoglalása
Excel programozás (makró)
BIOLÓGUS INFORMATIKA 2008 – 2009 (1. évfolyam/1.félév) 6.
Matlab. M ma áű t T vL e a r l b I e b x t a en k.
Informatikai gyakorlatok 11. évfolyam
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Utasítás és blokk. Elágazás típusai, alkalmazása Kovács.
Analogical and Neural Computing Laboratory, Hungarian Academy of Sciences, Budapest 1 MATLAB u Hatékony, interaktív, tudományos és műszaki számítások,
OpenCV CV = Computer Vision
Scilab alapok Mi a Scilab ? A Scilab telepítése
TÁMOP /1-2F Informatikai gyakorlatok 11. évfolyam Alapvető programozási tételek megvalósítása Czigléczky Gábor 2009.
Script nyelvek előadás
Szuper Szoftverek Szuperszámítógépekre
Script nyelvek előadás
Maple 1980.
Script nyelvek előadás
Excel programozás (makró)
MATLAB jelenleg 6.5-ös változat (R13)
Technológiai folyamatok optimalizálása
A CLIPS keretrendszer
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Informatikai gyakorlatok 11. évfolyam
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Algoritmus készítés.
Előadás másolata:

MATLAB www.mathworks.com jelenleg 6.5-ös változat (R13) ELTE: R12, Loviban elérhető műszaki számítások, algoritmus fejlesztés és tesztelés, szimulációk, tudományos munkák grafikai munkái, adatfeldolgozás Egyetemnek 6.2 van meg (R12)

MATLAB történet MATrix LABoratory eredetileg nagy FORTRAN könyvtárak felé szánták egyszerűen használható felületnek klónjai elérhetők más platformokon is (pl. Linux: octave) Ebből is látszik, mire jó Eredetileg LAPACK felülete 70-80-as évek: linpack, utána lapack

MATLAB elemei nyelv fejlesztői környezet (IDE) függvénykönyvtár editor, futtató környezet (parancssor), hibakövetés függvénykönyvtár grafikus rutinok toolboxok help IDE-ről nem beszélek, meg kell nézni. Relatíve kényelmes, interpreter előnyei miatt könnyű a hibakövetés Papaíron kényelmes, sourcesafe támogatással, beépített editorral, tapasztalat szerint viszont gyakran lefagy, „ellopja” a fókuszt sok memóriát zabál (JAVA) függvények alapvetően mátrix-manipulációs eljárások (linalg) grafikus rutinokról ma még sokat beszélek majd, egyik erőssége toolboxok „külső” eljárásgyűjtemények, igazából a belső függvényektől nem lehet őket megkülönböztetni (többnyire azokat is a MATLAB belső nyelvén írták), csak külön kérnek pénzt érte. Vannak free toolboxok is netről. helpről Barnabás beszélt, lényeg: help akármi kiírja Van részletesebb, MSDN stílusú

A MATLAB nyelve Fortran, C rokona alapvetően interpetált nyelv, bár lehet fordítani ( lassú) kommunikáció lehetősége más nyelvek felé egyszerű és gyorsan megtanulható, de nagy programok írására nem alkalmas (max. pár 100 soros programok)

A MATLAB nyelve mátrix-manipulációs nyelv a legfontosabb (és szinte egyetlen) adatstruktúra a mátrix nincsenek pointerek és összetett memória-kezelés, a hivatkozott változók automatikusan allokálódnak egy ún. workspace-ben (ezt közvetlenül elérhetjük a parancssorból) clear, who, whos, save, load, ans változó megjelenítés: beírni változó nevét (; nélkül) .mat file-ok mit jelent ez? megmutatni: a = 5 a clear érzékeny a kis-nagy betűre! vannak lehetőségek a memória okosabb kezelésére: pre-allokáció, ez gyakran szükséges nagy mátrixoknál pack, clear, clear változó whos save x.mat változó1 load x.mat ascii file-ból és binárisból is

Adatstruktúrák: mátrix megadás: A = [ 1 2 3; 4 5 6]; B = [ 3 4; 6 7]; C = [A B]; konstrukciós függvények: rand, randn, zeros, ones, magic, … elemre hivatkozás: A(2,3) (1-től N-ig !!!) bemutatni közök hatását rand(10,10)-en Sok függvény vektorokra vonatkozik, pl, length(), azokat, amelyek egy irányban 1D-sek automatice vektornak tekinti, ekkor a vektor irányának nincs jelentősége

Mátrixok II. részmátrixra hivatkozás: törlés: A(5,:) = []; A(end, 5:end); törlés: A(5,:) = []; értékadással túlindexelni lehet (automatikusan bővül), de lekérdezni nem egy dimenziójában 1 széles mátrix: vektor (tömb), iránynak a tömbön operáló függvényeknél (pl. length) nincs jelentősége bemutatni, pl. A = rand(5,5) A(6,6) = 1

Más adatstruktúrák több dimenziós mátrixok „cell” tömbök: mátrixok rekordjai, indexelés {} operátorral szöveg: ‘szervusz’ (’ jelek között) rekord: S(3) = struct('nev',‘Kovacs Agi',... ‘pontszam',70); több dimenziós mátrixot pl. ones, zeros-sal cell: összefűzés, sok matlab függvény eredménye cell szöveg: de jó, hogy eltér C-től rekordnál az első kettő rekord üres lesz … a következő sorban folytatja

Operátorok minden változó egy 1x1-es mátrix speciális értékek: Inf, NaN, komplex számokat ismeri +,-,* mátrixokon is úgy működik, ahogy elvárjuk .-os változatok: n = (0:9)'; pows = [n n.^2 2.^n] figyelni: = értékadás, == logikai vizsgálat ami nem C: ~= nem egyenlő, | logikai vagy, & logikai és, ~ negálás NaN not a number, pl. inf-inf, inf infinity 5/0 vagy túlcsordulás ha ilyet látunk a szimulációban, akkor aggódjunk van stop on inf vagy stop on nan debugnál ‘ a transzponálás opja csak érdekességek

Mátrix-manipulációk statisztika: cov, mean, std, var, min, max, sum, … lineáris algebra: ‘, inv, det, eig, diag, trace, norm, rank, lu, svd, … tulajdonságok: isempty, size, … átrendezések: permute, reshape, flipud, fliplr, sub2ind, ind2sub, sort, find … Magukért beszélnek többnyire van sokdimenziós változatuk, max, min pl. megadható, melyik dimenzió mentén dolgozzon

Programok scriptek: nincs I/O változó és direktben a workspace-ben dolgoznak függvények: vannak I/O változóik és saját workspace-ben dolgoznak (de bizonyos változóik lehetnek globálisak) .m file-ok: egy függvény – egy file (de egy .m file-ban lehetnek alfüggvények) Megnézni egy .m file-t spharm2.m travel.m ; meglehetősen rapszodikusan használható

Függvények function [out1, out2] = függvénynév(input1, input2) Utána írt komment (%) megjelenik help-ként változó hosszúságú argumentumlista átadható (varargin és varargout) global, return

Programkonstrukciók: if if logikai_kif utasítások elseif logikai_kif else end

Programkonstrukciók: switch switch logikai_kif case érték1 utasítások case érték2 … otherwise end Nem kell break!

Programkonstrukciók: ciklusok for változó = tól:köz:ig utasítások end while logikai_kif break, continue lassú… profi matlab programozó elkerüli continue: köv iteráció A = rand(1000,1000); mysum = 0; t=cputime; for i=1:1000, for j=1:1000, mysum = mysum+A(i,j); end; end; cputime-t t=cputime; mysum2 = sum(sum(A)); cputime-t 100-szor lassabb…

Haladó programozás legújabb MATLAB-ok támogatják az objektumelvű programozást (osztályok, öröklődés, új típusok és operátoraik) GUI készítés MATLAB-ból hívhatók C, Fortran és Java függvények a MATLAB is kínál fel API-t C és Fortran felé MATLAB .m file-okból C forrás és így önálló .exe készíthető (MATLAB compiler)

Az alap MATLAB függvénykönyvtára mátrixok és lineáris algebra (láttuk) polinomok (pl. gyökök keresése) interpoláció (pl. köbös spline-ok) geometriai algoritmusok (pl. voronoi-diagram) adat- és jelfeldolgozás (pl. illesztés, FFT) numerikus analízis (pl. integrálás, differenciálegyenletek) ritka mátrixok és műveleteik ezek az alap MATLAB-ban vannak ezek mellett bizonyos témákban külön toolboxok vannak jó pénzért

Toolbox-ok Data Acquisition TB Database TB Image Processing TB Neural Network TB Optimization TB PDE TB Signal Processing TB Spline TB Statistics TB Symbolic Math TB (Maple) Wavelet TB

Mire jó és mire nem? kutatómunka során ritka a „klasszikus” programfejlesztés, legtöbbször gyorsan kell ellenőrizni egy ötletet, egy algoritmust, írni egy egyszerű szimulációt stb. Nagy programok írására nem ajánlott és nem is alkalmas (relatíve rossz újrafelhasználás, tervezhetőség stb.)

II. rész: MATLAB Grafika vektorokban tárolt adatok megjelenítése: plot parancs x = 0:pi/100:2*pi; y = sin(x); plot(x,y) y2 = sin(x-.25); y3 = sin(x-.5); plot(x,y,x,y2,x,y3)

A plot parancs Stílusok megadása: plot(x,y,’c’); plot(x,y,’k:’); plot(x,y,’+’); 'c', 'm', 'y', 'r', 'g', 'b', 'w', 'k‘ vonalstílusok: '-', '--', ':', '-.', 'none‘ markerek: '+', 'o', '*', 'x‘ 's' (square), 'd‘ (diamond), '^' (up triangle), 'v' (down triangle), '>' (right triangle), '<' (left triangle), 'p' (pentagram), 'h' (hexagram), ‘none’

Ábrák figure azonosítóval: figure(14) plot és sok más utasítás alapértelmezésben új képet nyit a kurrens kép rögzítése („rárajzolás”): hold on, kikapcsolása hold off törlés: clf talán észrevettük, hogy új képek nyílnak figure: új kép, számmal: egyedi azonosítót rendelhetünk hozzá [x,y,z] = peaks; contour(x,y,z,20,'k') hold on pcolor(x,y,z) shading interp hold off

Több ábra egy képen subplot(X_max, Y_max, index); t = 0:pi/10:2*pi; [X,Y,Z] = cylinder(4*cos(t)); subplot(2,2,1); mesh(X) subplot(2,2,2); mesh(Y) subplot(2,2,3); mesh(Z) subplot(2,2,4); mesh(X,Y,Z)

Tengelyek axis auto (alapértelmezés) axis([xmin xmax ymin ymax]) axis square axis equal (tick-ek egyenlő közökre lesznek) axis on; axis off axes(!): tengely készítése tetszőleges pozícióban autonál megjelenítendő adathoz illeszkedik

Feliratozás title, xlabel, ylabel, legend, text korlátozottan felismeri a LATEX formátumú szimbólumokat x = 0:pi/100:2*pi; y = sin(x); plot(x,y) xlabel('-\pi \leq {\itt} \leq \pi') ylabel('sin(t)') title('Szinuszfüggvény') text(1,-1/3,'{\itPáratlan.}') legend('sin(x)');

MATLAB grafikai objektumok minden objektumhoz (képhez, tengelyhez, szöveghez, vonalhoz, stb.) tartozik egy handle ezt többnyire az objektum létrehozó függvénye adja vissza ezen keresztül az objektum tulajdonságai elérhetők és a beállítható tulajdonságok lekérdezhetők: set, get gcf, gca, findobj h = gca; set(h,’LineWidth’, 3); h = text(0.5,0.5,'szöveg'); set(h) set(h,'FontSize',20)

Objektumok tulajdonságainak interaktív kezelése a képen kattintva property editor szöveg, nyilak, vonalak beszúrása, forgatás, nagyítás [X,Y] = meshgrid(-8:.5:8); R = sqrt(X.^2 + Y.^2) + eps; Z = sin(R)./R; surf(X,Y,Z,'FaceColor','red','EdgeColor','none'); camlight left; lighting phong view(-15,65)

Haladó szintű megjelenítés 2D: bar, area, colorbar, pie, histogram, stem, stairs, … 3D: mesh, surf, contour, slice, … vektormezők: compass, rose, feather, quiver térfogat megjelenítése: isosurface, coneplot, streamline, streamtube, streamribbon, … demos-MATLAB-Graphics-2D Plots demos-MATLAB-Graphics-3D Plots demos-MATLAB-Graphics-3D Surface Plots demos-MATLAB-Graphics-Volume visualization

Képek megjelenítése BMP, HDF, JPEG, PCX, PNG, TIFF, XWD formátumok kezelése megjelenítés: image, imagesc file I/O: imread, imwrite képek is mátrixként tárolódnak, mátrixok is megjeleníthetők képként colormap: színtér manipulálása (ez is mátrix, kép értékei indexek ebben a színtérben) demos-MATLAB-Graphics-Images and colormaps

Animáció on-line (élő) off-line (képek elmentése animációs file-ba, majd később visszajátszás): getframe, movie az animációk elmenthetők .avi-ba: avifile MATLAB-graphics-Lorenz attraktor animation MATLAB-more examples-spinning Cruller movie

Következő óra Image Processing Toolbox Wavelet Toolbox