12
1 Úvod do programu Matlab MATLAB je špičkové integrované prostředí pro vědeckotechnické výpočty, modelování, simulace, prezentaci a analýzu dat. Je to nástroj jak pro pohodlnou interaktivní práci, tak pro vývoj širokého spektra aplikací. Poskytuje svým uživatelům mocné grafické a výpočetní nástroje, ale i rozsáhlé knihovny funkcí spolu s výkonným programovacím jazykem čtvrté generace. Za nejsilnější stránku tohoto programu je považováno mimořádně rychlé výpočetní jádro s optimálními algoritmy (programované ve Fortranu a jazyce C), které jsou prověřeny léty provozu na špičkových pracovištích po celém světě. Jeho implementace je provedena na všech významnějších platformách, od osobních počítačů s operačními systémy Windows 95, Windows NT a Linux přes počítače Macintosh až po pracovní stanice Sun, Hewlett-Packard, IBM nebo DEC a grafické stanice Silicon Graphics. Výrobce programu MATLAB je firma The Maths Works - http://www.mathworks.com . Českým distributorem je firma Humusoft s.r.o. - http://www.humusoft.cz . Základní vlastnosti: Interpretační jazyk - uživatel obdrží odpověď na svůj povel téměř okamžitě. Základními objekty - matice, ale podporuje i složitější typy, například vícerozměrná pole, datové struktury,…. Skládáním datových typů je možné vytvořit libovolně složité datové struktury. Grafika - umožňuje snadné zobrazení a prezentaci získaných výsledků. Lze vykreslit různé druhy grafů: dvourozměrné, třírozměrné, histogramy, apod. MATLAB také umožňuje otevřít více oken pro zobrazení grafů najednou nebo zobrazit více grafů v jednom okně. Otevřená architektura přispěla k velkému rozšíření. Úplný programovací jazyk - uživatelé v něm mohou vytvářet funkce "šité na míru" pro jejich aplikace. Tyto funkce se způsobem volání nijak neliší od vestavěných funkcí a jsou uloženy v souborech v čitelné formě. Dokonce většina funkcí s MATLABem dodávaných je takto vytvořena a opravdu vestavěné jsou jen funkce základní. To má dvě velké výhody: jazyk MATLABu je téměř neomezeně rozšiřitelný a kromě toho se uživatel může při psaní vlastních funkcí poučit z algoritmů s programem dodávaných. Navíc jsou takto koncipované funkce snadno přenosné mezi různými platformami, na kterých je MATLAB implementován.

Úvod Do Programu MATLAB

  • Upload
    gyjak

  • View
    45

  • Download
    6

Embed Size (px)

DESCRIPTION

zakladny popis MATLAB

Citation preview

  • 1

    vod do programu Matlab

    MATLAB je pikov integrovan prosted pro vdeckotechnick vpoty, modelovn, simulace, prezentaci a analzu dat. Je to nstroj jak pro pohodlnou interaktivn prci, tak pro vvoj irokho spektra aplikac. Poskytuje svm uivatelm mocn grafick a vpoetn nstroje, ale i rozshl knihovny funkc spolu s vkonnm programovacm jazykem tvrt generace. Za nejsilnj strnku tohoto programu je povaovno mimodn rychl vpoetn jdro s optimlnmi algoritmy (programovan ve Fortranu a jazyce C), kter jsou proveny lty provozu na pikovch pracovitch po celm svt. Jeho implementace je provedena na vech vznamnjch platformch, od osobnch pota s operanmi systmy Windows 95, Windows NT a Linux pes potae Macintosh a po pracovn stanice Sun, Hewlett-Packard, IBM nebo DEC a grafick stanice Silicon Graphics. Vrobce programu MATLAB je firma The Maths Works - http://www.mathworks.com. eskm distributorem je firma Humusoft s.r.o. - http://www.humusoft.cz.

    Zkladn vlastnosti: Interpretan jazyk - uivatel obdr odpov na svj povel tm okamit.

    Zkladnmi objekty - matice, ale podporuje i sloitj typy, napklad vcerozmrn pole, datov struktury,.

    Skldnm datovch typ je mon vytvoit libovoln sloit datov struktury.

    Grafika - umouje snadn zobrazen a prezentaci zskanch vsledk. Lze vykreslit rzn druhy graf: dvourozmrn, trozmrn, histogramy, apod. MATLAB tak umouje otevt vce oken pro zobrazen graf najednou nebo zobrazit vce graf v jednom okn.

    Oteven architektura pispla k velkmu rozen.

    pln programovac jazyk - uivatel v nm mohou vytvet funkce "it na mru" pro jejich aplikace. Tyto funkce se zpsobem voln nijak neli od vestavnch funkc a jsou uloeny v souborech v iteln form. Dokonce vtina funkc s MATLABem dodvanch je takto vytvoena a opravdu vestavn jsou jen funkce zkladn. To m dv velk vhody: jazyk MATLABu je tm neomezen roziiteln a krom toho se uivatel me pi psan vlastnch funkc pouit z algoritm s programem dodvanch. Navc jsou takto koncipovan funkce snadno penosn mezi rznmi platformami, na kterch je MATLAB implementovn.

  • 2

    1 Charakteristika datovch struktur

    speciln znaky

    % poznmka ; konec pkazu s potlaenm vstupu vsledku

    konec dky v matici ! uvd bn pkaz operanho systmu pokraovn pkazu na dalm dku ( ) zvorky vraz, indexov zvorky [ ] maticov zvorky { } buky

    zkladn datov typy (MATLAB rozliuje velk a mal psmena v nzvech promnnch, nerozliuje mal a velk psmena v nzvech funkc)

    typ pklad velikost

    slo 5 matice 1 x 1, reln slo typu double, int8, int16, int32, uint8 (bezznamnkov int8), uint16, uint32

    1.2e+3 2e-2 -1/5 5+i*3 matice 1 x1 , komplexn slo

    znak 'a' matice 1 x 1 char(64)

    etzec 'toto bude text' matice 1 x poet znak textu

    datum now aktuln datum a as jako slo date aktuln datum jako etzec : dd-mmm-

    yyyy clock aktuln datum jako vektor sel *y m d h

    m s]

    matice [1 2 3 4 5 6]

    matice dek x sloupec matice 2 x 3

    [1,2,3;4,5,6] [1 2 3;4 5 6] ['ahoj';'bye '] matice 2 x 4 ['ahoj','bye '] matice 1x 8 [1'a';22 'b'] matice 2 x 2 sparse(X) dk matice X

    vcerozmrn pole a=[1,2,3;4,5,6] b=[7,8,9;10,11,12] c=cat(3,a,b)

    matice dek matice a x sloupec matice a x 2 c(i,j,1)=a(i,j) c(i,j,2)=b(i,j)

  • 3

    buka c=cell(1) c{1}

    vytvo jednu przdnou buku, kter me obsahovat slo, znak, etzec, matici, vicerozmrn pole, buku,

    pole bunk c=cell(M,N,P,) c{m,n,p,}

    vytvo MxNxPx rozmrn pole przdnch bunk, kter mohou obsahovat slo, znak, etzec, matici, vicerozmrn pole, buku,

    strukturln pole s = struct('type',{'big','little'},'color',{'red'},'x',{3 4}) s(1)= type: 'little' color: 'red' x: 4

    inline funkce f=inline('t^2') g=inline('sin(1/x)') f(2) g(f(pi))

    funkce f(t)=t2

    funkce g(x)=sin(1/x) 22

    sin(1/pi*pi)

    objekty

    konverze jednotlivch datovch typ Existuj pedefinovan funkce na konverzi jednotlivch promnnch, zadanch typ parametr vybranch loh apod.

    konverze mezi jednotlivmi typy sel;

    konverze mezi etzci a sly;

    konverze datumovch promnnch;

    konverze bunk na strukturln pole;

    konverze numerickch hodnot matice na buky;

    konverze rznch souadnic (kartzsk, sfrick, )

    .

    dleit je pkaz eval (etzec), kter pete etzec a provede ho jako pkaz programu MATLAB

    Pklad: (vytvoit 10 pseudonhodnch matici N x N oznaench M1,M2,M10) N=5 for index =1 : 10 matice_s_indexem= ['M',int2str(index),' = rand(N)']; eval(matice_s_indexem) end

  • 4

    2 Vstup a vstup dat

    vstup dat

    interaktivn v rmci pracovnho okna lze zadvat libovoln data pomoc piazovacho pkazu =

    po vzv z klvesnice pomoc pkazu promnn=input('textov vzva'), program zobraz "textovou vzvu" a ek na vloen dat z klvesnice, data piad promnn

    v MAT souboru (standardn ppona souboru je .mat, ale lze pout libovolnou) o promnn lze pomoc pkazu save jmno_souboru ( ppadn s cestou ) uloit

    do souboru a pozdji pout pomoc pkazu load jmno_souboru ( ppadn s cestou ) jmno_promnnch

    o soubor pkazu load me bt ASCII soubor s daty po dkch oddlenmi mezerami, MATLAB nate data do promnn stejnho jmna jako je ASCII soubor

    v M-souboru pokud jsou data soust piazovacch pkaz v programu

    natenm TXT souboru pomoc pkaz fopen, fscanf, fread,textread (pro MATLAB 6)

    natenm WK1 souboru pomoc pkaz wk1read

    tabulkov soubor pomoc tblread, tdfread, caseread

    natenm Excel souboru (nutno dokoupit toolbox Excel LINK)

    vnitn pamov promnn o eps (2.10-16), o pi (3,14), o Inf o NaN (Not a Number), o i, j (imaginrn jednika), o ans (jmno vsledku nepiazenho vrazu) o realmax, realmin maximln a minimln reln slo (1.7977e+308, 2.2251e-

    308)

    vstup dat

    pamov promnn piazovacmi pkazy

    interaktivn text pokud M-pkaz nekon ; je automaticky vypsn vsledek do pracovnho okna

    MAT soubor pomoc pkazu save

    TXT soubor pomoc pkaz fwrite, sprintf,

    WK1 soubor pomoc pkaz wk1write

    tabulkov soubor pomoc tblwrite, casewrite

    Excel soubor (nutno dokoupit toolbox Excel LINK)

    grafy 2D

  • 5

    o vytvoen grafu plot(X,Y), plot(X,Y,S), kde S je tznakov etzec charakterizujc barvu, typ bodu a typ ry p.'c+:' (c cyan, + typ bodu plus, : typ ry dotted)

    o plot(X1,Y1,S1,X2,Y2,S2,) vce funkc do jednoho grafu o loglog(), semilogx(),semilogy() logaritmick mtko os o polar() polrn souadnice o area(X,Y) plocha pod kivkou o bar(), barh(), bar3h() sloupcov graf a sloupcov horizontln graf o comet() animovan prbh grafu o errorbar(X,Y,ERR) o ezplot('funkce'), fplot('funkce',argument) jednoduch vykreslen funkce

    zadan jako etzec nebo jako inline funkce o pie(), pie3() kolov grafy o plotmatrix(X,Y) vykresl matici NxM graf zachycujc zvislost i-tho sloupce

    matice X (i=1,,N) a j-tho sloupce matice Y (j=1,,M) o ribbon(X,Y) vykresl funkci jako psku o stem(X,Y) diskrtn posloupnost bod o stairs(X,Y) "schodovit" funkce

    prava graf: title(), xlabel(), ylabel(), text(), gtext(), grid,

    grafy 3D o plot3(x,y,Z) o [X,Y]=meshgrid(x,y) vvytvoen st z vektor souadnic x a y o mesh(Z) sov graf 3D o surf(Z) plon graf 3D o surfl(Z) plon graf 3D o surfc(Z) plon graf 3D s vrstevnicemi o ribbon(Y,Z) pskov graf o contour(Z) vrstevnicov graf o fill3(X,Y,Z) vyplnn graf

    prava graf: title(), xlabel(), ylabel(), text(), gtext(), grid, shading, colormap(),

    grafy standardn vystupuj do jednoho okna, lze koprovat do jinch SW (napklad Microsoft), ukldat jako M-soubor,

    vstupn okno lze rozdlit na nkolik oblast pomoc pkazu subplot

    vytvoen novho okna je realizovno pkazem figure, zachovn danho okna pkazem hold on

    Pklad vykreslen grafu 2D funkce subplot(1,2,1) x=-2*pi:4*pi/100:2*pi; plot(x,sin(x)+cos(x/2)) plot(x,sin(x/2)+sin(x),'rx--') hold on plot(x,sin(x)+cos(x/2)) title('graf 1')

  • 6

    subplot(1,2,2) a=1:6; b=binopdf(a,10,.2); bar(a,b)

    Pklad vykreslen grafu 3D funkce close all clear all x=-1:.1:1; y=-1:.1:1; f=inline('x.*exp(-x.^2)*y.*exp(-y.^2)','x','y'); n=9; for k=1:n, if k==1,a(k)=1; else a(k)=round((k*length(x)/(n))); end subplot(3,3,k) plot3(x,y,f(x,y(a(k)))) grid title (['y= 'num2str(y(a(k)))]) end

    -10 -5 0 5 10-2

    -1.5

    -1

    -0.5

    0

    0.5

    1

    1.5

    2graf 1

    1 2 3 4 5 60

    0.05

    0.1

    0.15

    0.2

    0.25

    0.3

    0.35

  • 7

    Pklad vykreslen grafu 3D funkce

    close all clear all [x,y]=meshgrid(-2:.1:2,-2:.1:2); f2=inline('x.*exp(-x.^2).*y.*exp(-y.^2)','x','y'); z2=f2(x,y); set(figure,'Name',['Funkce f2= 'formula(f2)],'NumberTitle','Off') shading flat colormap(autumn) subplot(2,2,1),plot3(x,y,z2),grid

    -10

    1

    -10

    1-0.2

    0

    0.2

    y= -1

    -10

    1

    -10

    1-0.2

    0

    0.2

    y= -0.6

    -10

    1

    -10

    1-0.2

    0

    0.2

    y= -0.4

    -10

    1

    -10

    1-0.1

    0

    0.1

    y= -0.2

    -10

    1

    -10

    1-0.05

    0

    0.05

    y= 0.1

    -10

    1

    -10

    1-0.2

    0

    0.2

    y= 0.3

    -10

    1

    -10

    1-0.2

    0

    0.2

    y= 0.5

    -10

    1

    -10

    1-0.2

    0

    0.2

    y= 0.8

    -10

    1

    -10

    1-0.2

    0

    0.2

    y= 1

  • 8

    subplot(2,2,2),mesh(z2),rotate3d on, subplot(2,2,3),surf(z2),shading interp subplot(2,2,4),contour(z2,15)

    3 Seznam zkladnch pkaz a funkc

    generovn vektor (vektor=zacatek:krok:konec, linspace(), logspace(),) o 1:10 generuje 1,2,3,10 o 0:.1:10 generuje 0,0.1,0.2,,9.9,10 o (0:10)^2 generuje 0,1,4,9,16,100

    prce s maticemi o A(i,j) (i,j)-t prvek matice A o A(i,:) i-t dka matice A o A(:,j) j-t sloupec matice A o A(:) cel matice jako vektor sloupcovch vektor o A(k) k-t prvek matice A representovan jako vektor sloupcovch vektor o A([1 3 5],[2 4] ) submatice matice A, kter obsahuje 1,3 a 5 dek a 2 a 4 sloupec o A(:,n:-1:1) matice A s pevrcenm poadm sloupc (n je poet sloupc) o A(:,sum(A)>0) submatice matice A, kter obsahuje pouze sloupce, jejich suma

    je kladn o A(sum(A,2)>=0,:) submatice matice A, kter obsahuje pouze dky, jejich suma

    je nezporn

    opertory o aritmetick opertory plus(+), minus(-) mtimes(*) mrdivide(/) mldivide(\)

    mpower(^) o prvkov opertory times(.*) rdivide(./) ldivide(.\) power(.^) nech A, B jsou matice typu 2 x 3, pak A/B = A*pinv(B) je typu 2x2,

    A\B=(BT/AT)T je typu 3 x 3, A./B=[aij/bij]ij je typu 2 x 3 a A.\B=[bij/aij]ij je typu 2 x 3

    nech A je tvercov matice , pak A^2=A*A, A^(1/2)=V*D^(1/2)*inv(V) kde V je matice vlastnch vektor a D je diagonln matice s vlastnmi sly na diagonle

    nech A je libovoln matice, pak A.^p=*aij^p]ij o relan a logick opertory a funkce eg(==), ne(~=), lt(), le(=),

    and(&), or(!), not(~) xor, any(A,dim), all(A,dim), isfinite(A), isnan(A), isinf(A), find(logick vraz) ~(A==B) prvek je jedna, kdy aijbij, jinak je prvek nula x(x>0) vypust z vektoru x nekladn prvky a zbytek peindexuje A(A>0) vypust z matice A nekladn prvky a zbytek peidexuje jako vektor

    sloupcovch vektor any(A,1) vrt vektor dlky poet sloupc, prvek je jednika, kdy existuje

    alespo jeden nenulov prvek ve sloupci, jinak je prvek nula all(A,2) vrt vektor dlky poet dk, prvek je jednika, kdy vechny prvky

    v dku jsou nenulov, jinak je prvek nula

  • 9

    find(A>0) vrt vektor index, kde pro kter aij>0 (potno jako vektor sloupcovch vektor)

    programov pkazy o dc a informan pkazy (clear, quit, exit, help, help demo, demo, who, whos,

    return, pause, pack, exist, close ) o podmnn pkazy if logick vraz odd pkaz odd elseif logick vraz odd pkaz odd else odd

    pkaz end (kde odd je ENTER nebo rka nebo stednk)

    if k0,a=1; else a=NaN; end

    if k0,a=1,else a=NaN,end

    switch switch_vraz, case case_vraz, pkaz, case case_vraz, pkaz,,

    otherwise, pkaz, end

    o pkazy cyklu for promnn=M-vraz, pkaz, pkaz, , end pokud M-vraz je skalr , cyklus probhne jednou pokud M-vraz je vektor v dlky k , cyklus probhne k-krt, promnn

    nabv postupn hodnot v(i), i=1,2,k pokud M-vraz je matice A typu m x n , cyklus probhne n-krt, promnn

    nabv postupn hodnot A(:,j), kde j=1,2,n pokud M-vraz je matice A typu m x n x p, cyklus probhne (n x p)- krt,

    promnn nabv postupn hodnot A(:,j,k), kde j=1,2,n a k=1,2,..p peruen cyklu lze realizovat pomoc break

    o while M-vraz, pkaz, pkaz,, end peruen cyklu lze realizovat pomoc break

    o makrokkazy

    funkce sek programu uloen jako M-soubor, vstupn argumenty vyhodnot

    jako parametry funkce, vechny promnn jsou lokln, shoda jmen s globlnmi promnnmi nevad, vyvolv se pomoc nzvu M-souboru Pklad funkce pro vpoet zkladnch statistickch ukazatel, uloeno jako zakl_stat.m function [prumer,rozptyl,vyb_rozptyl,hlaska]=zakl_stat(data,nazev_dat)

  • 10

    %Vypocet zakladnich statistickych charakteristik %Povinny parametr jsou data, nesmi byt nulovy prumer=NaN; rozptyl=NaN; vyb_rozptyl=NaN; if nargin

  • 11

    matematick funkce

    o trigonometrick fce sin, cos, o exponenciln fce exp, log, o komplexn fce abs,angle, o zaokrouhlovn round, fix, floor, o speciln funkce beta,gamma, besselj, o funkce kombinatoriky faktor, perms, o transformace souadnic cart2sph, cart2pol,

    maticov funkce

    o generovn specilnch matic zeros, ones, eye, rand, magik, hilbert, pascal, o operace s maticemi diag, expm, logm, sgrtm, funm (p. funm(A,'sin')), o transformace matic A' o charakteristiky matice size, trace, det, norm, rank, cond, o inverze matic inv, pinv o rozklady matic lu, qr, chol, svd, a bze orth, null, o problmy vlastnch sel a vlastnch vektor eig, o funkce pro operace s dkmi maticemi

    funkce matematick analzy

    o polynomy poly, roots, conv, o interpolace spline, table1, o derivace a integrace diff, gradinet, quad, o koeny fce roots, zeroin, o een diferencilnch rovnic ode23, o Fourierova transformace o minimalizace max, min, fmin, fmax, o

    optimalizan funkce (st tchto funkc je soust modulu Optimization Toolbox)

    o voln extrmy fmin, fmins, fminu o vzan extrmy linern programovn, kvadratick programovn, obecn

    funkce pro een vzanch extrm lp, qp, constr o speciln typy minimalizac seminf, attgoal o minmax optimalizace minimax o een rovnic rovnic f( x )=0 fzero, fsolve, \, o vyrovnvn kivek (MN) curvefit, leastsq, nnls, conls, \

    statistick funkce - deskritptivn statistiky o maximum, minimum max, min o prmry mean, geomean, hermmean, trimmean o rozptyly, smrodatn odchylky var,std

  • 12

    o ikmost, piatost, momenty kurtosis, skewness, moment o robusn statistiky iqr, mad, median, range o kvartily, percentily - quantile, prctile o celkov statistiky grpstats o vcerozmrn statistiky corr, cov

    rzn typy rozdlen o pdf funkce hustoty, o cdf distribun funkce, o inv kvantilov funkce, o fit odhady parametr o rnd genertory nhodnch sel, o stat momenty

    o normpdf, normcdf, norminv,Normand, normstat o beta rozdlen, negativn beta rozdlen, rozdlen extrmnch hodnot,

    exponenciln, binomick, chi-kvadrat, F-rozdlen, Gamma rozdlen, Studentovo, Weibullovo, logaritmicko normln, rovnomrn ,.

    Statistick grafy o boxplot, hist, normplot, qqplot, wblplot, errorbar, pareto

    Statistick hypotzy o Parametrick ttest, ttest2,ztest, anova

    o Neparametrick signrank, ranksum,signtest, friidman, kruskalwallis, kstest,lillietest,jbtest