errorbar chybové úsečky ukazují úroveň spolehlivosti dat nebo odchylku podél křivky. Příklad: x = linspace(0,2*pi,10); y = sin(x); er = std(y)*ones(size(x)); errorbar(x,y,er)
feather graf zobrazující vektory vycházející z bodů rovnoměrně rozložených podél vodorovné osy, tj. z [0,0], [1,0], [2,0], [3,0], Příklady: Zobrazení funkce sin(x) x = linspace(-2*pi,2*pi,40); feather(x,sin(x)) grid Zobrazení komplexních čísel C = [-2+i,-3-4i,1+2i,4-3i,i,1]; subplot(1,2,1) compass(c) subplot(1,2,2) feather(c)
spy grafické zobrazení řídké matice (pro analýzu řídkých matic ) Příklad: V = zeros(9); V(1,2) = 7; V(2,3) = 6; V(1,4) = 9; V(5,5) = 4; V(7,8) = 5; spy(v,'r') % body mi v grafu ukáží nenulové hodnoty V = 0 7 0 9 0 0 0 0 0 0 0 6 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Řízení vzhledu textů v grafech příkazy LaTeXu dolní index t 1 se zapíše t_1 horní index t 2 se zapíše t^2 - má-li platit příkaz pro více znaků použijeme {} např. x_{23} vytiskne x 23 Příklad: t=[0:1e-4:5e-2]; uu=230.*sin(2.*pi.*50.*t); uv=230.*sin(2.*pi.*50.*t-2*pi/3); uw=230.*sin(2.*pi.*50.*t+2*pi/3); plot(t,uu,'k') hold on plot(t,uv,'r') plot(t,uw,'g') hold off xlabel('t') ylabel('u') legend('u_u','u_v','u_w') axis([0,0.05,-300,500])
Řízení vzhledu textů v grafech příkazy LaTeXu dolní index t 1 se zapíše t_1 horní index t 2 se zapíše t^2 - má-li platit příkaz pro více znaků použijeme {} např. x_{23} vytiskne x 23 Příklad: t=[0:1e-4:5e-2]; uu=230.*sin(2.*pi.*50.*t); uv=230.*sin(2.*pi.*50.*t-2*pi/3); uw=230.*sin(2.*pi.*50.*t+2*pi/3); plot(t,uu,'k') hold on plot(t,uv,'r') plot(t,uw,'g') hold off xlabel('t') ylabel('u') legend('u_u','u_v','u_w') axis([0,0.05,-300,500]) dolní index se zapíše pomocí _
Řízení vzhledu textů v grafech příkazy LaTeXu dolní index t 1 se zapíše t_1 horní index t 2 se zapíše t^2 - má-li platit příkaz pro více znaků použijeme {} např. x_{23} vytiskne x 23 Příklad: t=[0:1e-4:5e-2]; uu=230.*sin(2.*pi.*50.*t); uv=230.*sin(2.*pi.*50.*t-2*pi/3); uw=230.*sin(2.*pi.*50.*t+2*pi/3); plot(t,uu,'k') hold on plot(t,uv,'r') plot(t,uw,'g') hold off xlabel('t') ylabel('u') legend('u_u','u_v','u_w') axis([0,0.05,-300,500]) dolní index se zapíše pomocí _ změna rozsahu os - viz dále
Příklad: vykreslení grafu funkce y = e -x2, kde x je z intervalu od -1.5 do 1.5 function y = enaminusxna2(x) y=exp(-x.^2); end Volání funkce a vykreslení grafu x = [-1.5:.01:1.5]; vysledek = enaminusxna2(x); plot(x,vysledek) title('y=e^{-x^2}') xlabel('x') ylabel('y')
Příklad: vykreslení grafu funkce y = e -x2, kde x je z intervalu od -1.5 do 1.5 function y = enaminusxna2(x) y=exp(-x.^2); end Volání funkce a vykreslení grafu x = [-1.5:.01:1.5]; vysledek = enaminusxna2(x); plot(x,vysledek) title('y=e^{-x^2}') xlabel('x') ylabel('y') před znakem ^ tečka operace. ^, umocnění proběhne prvek po prvku horní index se zapíše pomocí ^ (řízení vzhledu textů )
Pokračování příkladu: měřítko pro osy se volí automaticky axis změna měřítka os, bez parametrů vrátí vektor s rozsahy os např.: pro předchozí graf axis ans = -1.5000 1.5000 0.1000 1.0000
Pokračování příkladu: měřítko pro osy se volí automaticky axis změna měřítka os, bez parametrů vrátí vektor s rozsahy os např.: pro předchozí graf axis ans = -1.5000 1.5000 0.1000 1.0000
Pokračování příkladu: měřítko pro osy se volí automaticky axis změna měřítka os, bez parametrů vrátí vektor s rozsahy os např.: pro předchozí graf axis ans = -1.5000 1.5000 0.1000 1.0000
Je-li zadán čtyřprvkový vektor, např. c = [xmin, xmax, ymin, ymax] axis(c); nastaví měřítko podle předpisu ve vektoru c Lze též zapsat pro dvourozměrné grafy takto: axis([xmin, xmax, ymin, ymax]); nebo pro trojrozměrné grafy pak takto: axis([xmin, xmax, ymin, ymax, zmin, zmax]); Pokračování příkladu: graf y = e -x2 pro x od -1.5 do 1.5 se změnou měřítka os x a y x min = 1, x max = 1, y min = 0, y max = 3 axis([-1,1,0,3])
Je-li zadán čtyřprvkový vektor, např. c = [xmin, xmax, ymin, ymax] axis(c); nastaví měřítko podle předpisu ve vektoru c Lze též zapsat pro dvourozměrné grafy takto: axis([xmin, xmax, ymin, ymax]); nebo pro trojrozměrné grafy pak takto: axis([xmin, xmax, ymin, ymax, zmin, zmax]); Pokračování příkladu: graf y = e -x2 pro x od -1.5 do 1.5 se změnou měřítka os x a y x min = 1, x max = 1, y min = 0, y max = 3 axis([-1,1,0,3])
Je-li zadán čtyřprvkový vektor, např. c = [xmin, xmax, ymin, ymax] axis(c); nastaví měřítko podle předpisu ve vektoru c Lze též zapsat pro dvourozměrné grafy takto: axis([xmin, xmax, ymin, ymax]); nebo pro trojrozměrné grafy pak takto: axis([xmin, xmax, ymin, ymax, zmin, zmax]); Pokračování příkladu: graf y = e -x2 pro x od -1.5 do 1.5 se změnou měřítka os x a y x min = 1, x max = 1, y min = 0, y max = 3 axis([-1,1,0,3])
- samotný příkaz axis zmrazí do odvolání pro všechny grafy aktuální nastavení - zadá-li se příkaz axis ještě jednou, vrátí se nastavení na automatické měřítko axis('square') - zajistí, že obě osy vytvoří čtvercovou oblast pro vykreslení grafu axis('equal') stejný krok na obou osách, rovnost měřítek tělesa ve 3D, např. koule, nebudou zmáčknutá, deformovaná např.: pro předchozí graf y = e -x2 pro x od -1.5 do 1.5 axis('square') axis('equal')
axis off vypne osy v grafu axis on opět zapne vypnuté osy např.: pro předchozí graf y = e -x2 pro x od -1.5 do 1.5 axis off axis on a změna měřítka os x a y axis([-0.5,0,0.5,1]); axis('normal') návrat k výchozímu stavu co se týče "tvaru" axis('auto') návrat k výchozímu stavu co se týče mezí os
axis off vypne osy v grafu axis on opět zapne vypnuté osy např.: pro předchozí graf y = e -x2 pro x od -1.5 do 1.5 axis off axis on a změna měřítka os x a y axis([-0.5,0,0.5,1]); axis('normal') návrat k výchozímu stavu co se týče "tvaru" axis('auto') návrat k výchozímu stavu co se týče mezí os
axis image podobně jako equal zajistí stejný krok na obou osách a k tomu nastaví osy přesně dle rozsahu dat Příklad: koule a válec pomocí generátoru křivek subplot(1,2,1) sphere % koule axis image subplot(1,2,2) cylinder % valec axis image Další parametry viz help axis.
Připomenutí: vytváření vektorů hodnot pro vodorovnou osu x, resp. t (možné i jiné značení) pro grafy a výpočty: vektorem výčtem prvků v hranatých závorkách (při velkém počtu prvků nevhodné), např. x = [0,1,2,5,6] vektorem výčtem pomocí dvojtečky[od : krok : do] použijeme tehdy, známe-li meze (od, do) a zvolenou velikost kroku, např. x2 = 0 : 0.1 : 2*pi; používáme-li dvojtečku, hranaté závorky nejsou nutné.
Pokračování připomenutí: pomocí linspace linspace(od, do, počet_prvků) použijeme tehdy, známe-li meze (od, do) a počet prvků ve vektoru vytvoří vektor s lineárním dělením s počtem prvků počet_prvků pozor pokud uvedeme jen parametry od a do, počet prvků je automaticky 100, např. x3 = linspace(3,15,45) vektor od 3 do 15 s 45 prvky. pomocí logspace logspace(od,do,počet_prvků) vytvoří vektor s logaritmickým dělením s počtem prvků počet_prvků hodnoty jsou 10 od až 10 do pozor pokud uvedeme jen parametry od a do, počet kroků je automaticky 50, např. x4 = logspace(2,8,10) vektor od 10 2 až 10 8 s 10 prvky. (vhodné např. bude-li potom graf vykreslován stejně pomocí semilogx, pak lineární dělení osy je někdy nevhodné)
Příklad: Amplitudová a fázová frekvenční charakteristika filtru Filtr je obvod přenášející pouze vybrané frekvence a tlumící ostatní. Pasivní filtry se skládají z pasivních součástek (rezistor, cívka a kondenzátor). Poměr výstupního a vstupního napětí se nazývá napěťový přenos. U 2 K ( U U ) Amplitudová frekvenční charakteristika je závislost absolutní hodnoty přenosu K U na frekvenci a fázová frekvenční charakteristika je závislost úhlu Im[ KU ] na frekvenci. arctg Re[ K ] U 1 Vykreslete amplitudovou a fázovou frekvenční charakteristiku filtru RC integračního členu v rozsahu 1 rad/s až 1 10 5 rad/s. Charakteristiky vykreslete do grafického okna rozděleného na dvě části v semilogaritmických souřadnicích s osou x s logaritmickým dělením.
Pokračování příkladu: RC integrační člen dolní propusť, dáno R = 10, C = 1 mf: w = logspace(0, 5, 100); R = 10; C = 1e-3; Ku = 1./(j*w*C)./(R+1./(j*w*C)); Ku_abs = abs(ku); Ku_uhel = angle(ku)/pi*180; subplot(2,1,1); semilogx(w, Ku_abs); grid xlabel('\omega (rad/s)'); ylabel(' K_u '); subplot(2,1,2); semilogx(w, Ku_uhel); grid xlabel('\omega (rad/s)'); ylabel('uhel K_u'); Pomocí vztahu pro napěťový dělič: R K U U 2 C = 1 j C 1 U1 R j C
Pokračování příkladu: RC integrační člen dolní propusť, dáno R = 10, C = 1 mf: 10 0 10 5 w = logspace(0, 5, 100); R = 10; C = 1e-3; Ku = 1./(j*w*C)./(R+1./(j*w*C)); Ku_abs = abs(ku); Ku_uhel = angle(ku)/pi*180; subplot(2,1,1); semilogx(w, Ku_abs); grid xlabel('\omega (rad/s)'); ylabel(' K_u '); subplot(2,1,2); semilogx(w, Ku_uhel); grid xlabel('\omega (rad/s)'); ylabel('uhel K_u'); operace. / nutná Pomocí vztahu pro napěťový dělič: velikost K U úhel ve stupních R K závislost absolutní hodnoty přenosu K U na frekvenci ω závislost úhlu (fáze) K U na frekvenci ω U U 2 C = 1 j C 1 U1 R j C
Pokračování příkladu: RC integrační člen dolní propusť, dáno R = 10, C = 1 mf: w = logspace(0, 5, 100); R = 10; C = 1e-3; Ku = 1./(j*w*C)./(R+1./(j*w*C)); Ku_abs = abs(ku); Ku_uhel = angle(ku)/pi*180; subplot(2,1,1); semilogx(w, Ku_abs); grid xlabel('\omega (rad/s)'); ylabel(' K_u '); subplot(2,1,2); semilogx(w, Ku_uhel); grid xlabel('\omega (rad/s)'); ylabel('uhel K_u'); Pomocí vztahu pro napěťový dělič:
Řízení vzhledu textů v popisech grafů příkazy LaTeXu dolní index: _ horní index: ^ speciální symboly (např. řecká písmena atp.) Ω \Omega ω \omega α \alpha β \beta Φ \Phi \circ π \pi \int, atp. viz nápověda MATLABu pod heslem Text Properties (platí tedy pro MATLAB) často užívané značky pro tok textu (platí opět pro MATLAB): \bf tučné písmo (bold) \it italika, kurzíva \sl oblique font (jen zřídka k dispozici) \rm normální font (tj. návrat k výchozímu fontu ruší příkazy \it, \bf atd.) 'FontName','jmeno_fontu' nastavení jiného fontu 'FontSize',velikost_fontu změna velikosti fontu
Příklad: Grafické okno je rozděleno na dvě části, vlevo jsou vykresleny grafy funkcí y sin = 0,5 sin(α 2 ) a y cos = cos 2 (α) v kartézských souřadnicích pro α od 0 do 60, dále je vyznačen kolečkem bod o souřadnicích [0, sin(0)] a popsán textem. vpravo graf funkce r = sin(2ζ) cos(2ζ) v polárních souřadnicích pro úhel ζ od 0 do 360. Jsou popsány osy grafu, jsou uvedeny titulky grafů a u prvního grafu legenda.
subplot(1,2,1) alpha = 0:0.1:60; ys = 0.5.*sind(alpha.^2); yc = cosd(alpha).^2; plot(alpha,ys,'k','linewidth',1) hold on plot(alpha,yc,'c-.','linewidth',4) xlabel('{\it\alpha}[\circ]','fontsize',12) ylabel('{\ity}_{sin},{\ity}_{cos}','fontsize',12) title('graf: {\ity}_1 = 0,5sin(\it\alpha\rm^2) a {\ity}_2 = cos^2({\it\alpha})',... 'FontName','Times New Roman','FontSize',15) legend({'y_{sin} = 0,5sin(\alpha^2)',... 'y_{cos} = cos^2\alpha'},'fontangle','italic',... 'FontName','Arial','FontSize',10,'FontWeight','bold',... 'Location','South'); plot(0,sin(0),'ro') text(0,0.6,'sin(0) = 0','color','red') axis([-5,65,-1,1]) hold off subplot(1,2,2) xi = 0:.01:2*pi; polar(xi,sin(2*xi).*cos(2*xi),'m--') title('graf: {\itr} = sin(2*{\it\xi}).*cos(2*{\it\xi})',... 'FontName','Times New Roman','FontSize',15)
subplot(1,2,1) alpha = 0:0.1:60; ys = 0.5.*sind(alpha.^2); yc = cosd(alpha).^2; plot(alpha,ys,'k','linewidth',1) hold on plot(alpha,yc,'c-.','linewidth',4) xlabel('{\it\alpha}[\circ]','fontsize',12) ylabel('{\ity}_{sin}, {\ity}_{cos}','fontsize',12)
axis([-5,65,-1,1]) title('graf: {\ity}_1 = 0,5sin(\it\alpha\rm^2) a {\ity}_2 = cos^2({\it\alpha})',... 'FontName','Times New Roman','FontSize',15) legend({'y_{sin} = 0,5sin(\alpha^2)',... 'y_{cos} = cos^2\alpha'},'fontangle','italic',... 'FontName','Arial','FontSize',10,'FontWeight','bold',... 'Location','South');
plot(0,sin(0),'ro') text(0,0.6,'sin(0) = 0','color','red') hold off subplot(1,2,2) xi = 0:.01:2*pi; polar(xi,sin(2*xi).*cos(2*xi),'m--') title('graf: {\itr} = sin(2*{\it\xi}).*cos(2*{\it\xi})',... 'FontName','Times New Roman','FontSize',15)
- vyhlazení hran barevných grafů u plošného grafu surf. shading faceted výchozí stav, nevyhlazené, vykreslené hrany shading flat nevyhlazené, bez vykreslených hran shading interp vyhlazené s barevnými přechody, bez vykreslených hran Příklad: vykreslení průběhu funkce z = cos(x 2 + y 2 ) pro x, y z intervalu od -1 do 1 s krokem, který zvolí uživatel. Krok je volen v mezích od 5 do 50. Jedná se o třírozměrný graf (plošný), jsou použity různé typy vyhlazení hran u plošného grafu.
Pokračování příkladu: function plosny_graf_stinovani while(1) p=input('zadej pocet prvku na osach: '); if((p>=5)&&(p<=50)) break; end end x = linspace(-1,1,p); % p - počet bodů na ose x y = linspace(-1,1,p); % p - počet bodů na ose y [X,Y] = meshgrid(x,y); Z = cos(x.^2+y.^2); subplot(2,2,1); mesh(x,y,z)
Pokračování příkladu: subplot(2,2,2); surf(x,y,z) shading interp subplot(2,2,3); surf(x,y,z) shading flat subplot(2,2,4); surf(x,y,z) shading faceted end % konec funkce Volání funkce: plosny_graf_stinovani Zadej pocet prvku na osach: 10
alpha(n) průhlednost grafu 0 je úplně průhledný a 1 je neprůhledný (viz výchozí stav) (pouze v některých výpočetních systémech) Příklad: surf(cylinder) neprůhledný surf(cylinder) alpha(0.4) průhlednost 40 % surf(cylinder) alpha(0) průhledný
Pozn.: znak @ obecně slouží pro vytvoření odkazu (reference) na funkci Pozor - rozdíl: volání funkce: výstup = název_funkce(vstup) Funkce je volána přímo z příkazového řádku nebo z jiné funkce, MATLAB ji ihned vyhodnotí. odkaz na funkci h = @název_funkce Odkaz na funkci zajišťuje volání funkce nepřímo. Funkce je vykonána např. až, je-li volána jinou funkcí.
fplot(funkce,lim) graf funkce ve tvaru y = (x) mezi body na ose x stanovené vektorem lim = [xmin,xmax]. Jako první parametr funkce lze: zadat odkaz na vestavěnou funkci (@nazev_funkce), druhý parametr je vektor o dvou prvcích [od, do], např.: fplot(@sin,[-5, 5]) zadat odkaz na vlastní funkci (@nazev_funkce), druhý parametr je vektor o dvou prvcích [od, do], např.: function y=sin2x2(x) y=(sin(x.^2)).^2; end Vytvoření uživatelské funkci pro výpočet y = sin 2 x 2 s názvem sin2x2
fplot(funkce,lim) graf funkce ve tvaru y = (x) mezi body na ose x stanovené vektorem lim = [xmin,xmax]. Jako první parametr funkce lze: zadat odkaz na vestavěnou funkci (@nazev_funkce), druhý parametr je vektor o dvou prvcích [od, do], např.: fplot(@sin,[-5, 5]) zadat odkaz na vlastní funkci (@nazev_funkce), druhý parametr je vektor o dvou prvcích [od, do], např.: function y=sin2x2(x) y=(sin(x.^2)).^2; end Vytvoření uživatelské funkci pro výpočet y = sin 2 x 2 s názvem sin2x2 A odkaz na tuto funkci v příkazu fplot fplot(@sin2x2,[-5, 5])
fplot(funkce,lim) graf funkce ve tvaru y = (x) mezi body na ose x stanovené vektorem lim = [xmin,xmax]. pokud funkce není složitá, není potřeba ji pojmenovávat, a jako první parametr funkce lze zadat odkaz ve tvaru(@(proměnná)vzorec), kde proměnná je parametr, který se bude vykreslovat na ose x např. pro y = sin 2 x 2 pro x od -5 do 5: odkaz v příkazu fplot fplot(@(x)(sin(x.^2)).^2,[-5, 5]) např. pro b = cos(1/a 2 ) pro a od 0.1 do 0.2: odkaz v příkazu fplot fplot(@(a)cos(1./a.^2),[0.1,0.2])
Příklad: Vykreslení průběhů funkcí sin(t), cos(t) a vlastní funkce sin 2 t 2 od 0 do 2π použitím příkazu fplot Pozn.: - exist('nejaka_promenna') test, zda nějaká proměnná existuje (vrací 0 nebo 1 tj. ne / ano) function demo_funkce while (1) kterou = input('kterou funkci ukazat (0 pro ukonceni): '); switch kterou case 0 break; case 1 h = sprintf('graf funkce sin(t)'); testf = @sin; case 2 h = sprintf('graf funkce cos(t)'); testf = @cos;
case 3 h = sprintf('graf funkce sin^2 t^2.'); testf = @sin2x2; otherwise fprintf('takovou funkci tu nemam.\n'); continue; end; t = [0,2*pi]; if (exist('graf')) close(graf); clear graf; end; graf = figure; fplot(testf,t); title(h); end; close(graf) fprintf('nashledanou, hezky den...\n'); end function y = sin2x2(x) y=(sin(x.^2)).^2; end odkaz na funkci sin2x2 test, zda existuje proměnná graf pokud proměnná graf existuje, grafické okno s číslem graf se zavře a proměnná se smaže Ve funkci demo_funkce je odkaz na funkci sin2x2
Pokračování příkladu: Volání funkce demo_funkce Kterou funkci ukazat (0 pro ukonceni): 1 Kterou funkci ukazat (0 pro ukonceni): 3 Kterou funkci ukazat (0 pro ukonceni): 4 Takovou funkci tu nemam. Kterou funkci ukazat (0 pro ukonceni): 0 Nashledanou, hezky den...
Podobné funkce ezplot, ezmesh, ezsurf a další kde ez značí easy-to-use ezplot(fun) vykreslí grafy funkcí fun(x) pomocí plot pro výchozí hodnoty -2π < x < 2π: např. pro y = x 2 +4x +3 pro x od - 2π do 2π ezplot(@(x)x.^2+4.*x+3) Podobně ezmesh(fun) vykreslí grafy funkcí fun(x,y) pomocí mesh pro výchozí hodnoty -2π < x < 2π a -2π < y < 2π : např. pro z = x e (-x2 - y 2 ) pro x, y od - 2π do 2π ezmesh(@(x,y)x.*exp(-x.^2 y.^2)) parametry, které se budou vykreslovat na osách x, y
Podobně ezsurf(fun) vykreslí graf funkce fun(x,y) pomocí surf pro výchozí hodnoty -2π < x < 2π a -2π < y < 2π : Zobrazení vlastní funkce, např. z = x y k 1/(x k 2 + y k 3) function z = moje(x,y,k1,k2,k3) z = x.*(y.^k1)./(x.^k2 + y.^k3); end Pokud má vlastní uživatelská funkce více parametrů, je třeba určit, které se budou vykreslovat na osách @(x,y), např.: z = x y k 1/(x k 2 + y k 3) pro x, y od - 2π do 2π, k 1 = 3, k 2 = 4, k 3 = 2. ezsurf(@(x,y)moje(x,y,3,4,2))
figure vytvoří prázdné grafické okno příkaz není nutný v případě, že není otevřeno žádné okno stačí kterýkoliv grafický příkaz a výpočetní systém okno grafu vytvoří, aby bylo kam kreslit. pokud už nějaký graf existuje, grafické příkazy kreslí do okna, které je vybrané to naposledy otevřené. příkaz figure vždy otevře nové okno a vybere ho, do něj se potom kreslí v MATLABu lze vybrat graf též myší to je vhodné jen při práci v příkazovém řádku, ne z programu (File New Figure) pokud je třeba znát číslo otevřeného grafu, lze zjistit takto, např: cislo_grafu = figure cislo_grafu = 5
výběr grafu pro práci, např. z funkce cislo_grafu = figure(1) % bude se pracovat s grafem 1 figure(cislo_grafu) % bude se pracovat s grafem uloženým v proměnné cislo_grafu číslu grafu (figury) MATLAB říká "figure handle" close zavře aktuální grafické okno close(cislo_grafu) zavře grafické okno s udaným číslem, tj. v tomto případě uloženým v proměnné cislo_grafu close all zavře všechna otevřená grafická okna
Příklad: Po následujících příkazech budou otevřena 2grafická okna s grafy: close all a=figure b=figure a = 1 b = 2 figure(a) plot(5,3,'ro','markersize',30,'linewidth',3)
Příklad: Po následujících příkazech budou otevřena 2grafická okna s grafy: close all a=figure b=figure a = 1 b = 2 figure(a) plot(5,3,'ro','markersize',30,'linewidth',3) figure(b) fplot(@sin,[-3,3])
Pokračování příkladu: figure(a) hold on plot(6,2,'k*','markersize',30,'linewidth',3) hold off figure(b) hold on fplot(@cos,[-3,3],'g') hold off
Pokračování příkladu: figure(a) hold on plot(1,1,'cv','markersize',30,'linewidth',3,... 'MarkerFaceColor','c') grid hold off c = figure c = 3
Pokračování příkladu: figure(a) hold on plot(1,1,'cv','markersize',30,'linewidth',3,... 'MarkerFaceColor','c') grid hold off c = figure c = 3 close(3) zavře grafické okno 3
Pokračování příkladu: close all zavře všechna otevřená otevřená grafická okna
Pozn. Jako parametr příkazu plot 'LineWidth',5 nastavuje tloušťku čáry 'MarkerSize',16 nastavuje velikost značky 'MarkerFaceColor','r' nastavuje barvu výplně značky get(cislo_grafu) vypíše všechny informace o grafu get(cislo_grafu, 'Nazev vlastnosti') vypíše hodnotu dané vlastnosti Např.: get(cislo_grafu, 'Color') Nastavení hodnoty vlastnosti: set(cislo_grafu,'nazev vlastnosti',hodnota_vlastnosti) Např.: set(cislo_grafu, 'Color', [0.8, 0.8, 0.8]) nastavena barva RGB 80% 80% 80% (procenta červené, modré a zelené barvy)
Příklad: figure(7) fplot(@sin,[-pi,pi]) a = get(7) a = Alphamap: [1x64 double] BeingDeleted: 'off' BusyAction: 'queue' ButtonDownFcn: '' Children: 173.0350 Clipping: 'on' CloseRequestFcn: 'closereq' Color: [0.8000 0.8000 0.8000] Colormap: [64x3 double] CreateFcn: '' CurrentAxes: 173.0350 CurrentCharacter: '' CurrentObject: [] CurrentPoint: [0 0] WVisual: '00 (RGB 32 GDI, Bitmap, Window)' WVisualMode: 'auto'
Pokračování příkladu: figure(7) fplot(@sin,[-pi,pi]) c = get(7, 'Color') c = 0.8000 0.8000 0.8000 set(7,'color',[0.1, 0.2, 0.3]) n = get(7, 'NumberTitle') n = on set(7,'numbertitle','off')
Příklad: nastavení hodnoty vlastnosti grafického okna změna barvy dle volby uživatele Např. takto:
function polozka = mojemenu df = figure; while(1) volba = menu('vyber barvu','cervena','modra','zelena','konec'); switch volba case 1 polozka = 'Cervena'; set(df, 'Color', 'r'); case 2 polozka = 'Modra'; set(df, 'Color', 'b'); case 3 polozka = 'Zelena'; set(df, 'Color', 'g'); case 4 polozka = 'Konec'; close(df); break; otherwise polozka = 'Neznama barva'; end end msgbox(['ahoj, zvolil jsi ', polozka], 'Poslední sbohem', 'help') end
Podobně i plot vrací informace o grafu, je-li v grafu více grafických objektů, jedná se o sloupcový vektor. x = 0:2*pi; dp = plot(x,sin(x)) dp = 174.0386 get(dp) vypíše všechny informace o grafu DisplayName: '' Annotation: [1x1 hg.annotation] Color: [0 0 1] LineStyle: '-' LineWidth: 0.5000 Marker: 'none'... XDataMode: 'manual' XDataSource: '' YDataSource: '' ZDataSource: '' krok 1 set(dp,'nazev vlastnosti',hodnota_vlastnosti) nastavení hodnoty vlastnosti
Příklad: Vykreslení paraboly zadané parametrickými rovnicemi x = -2 + t, y = -1 + t 2, pro t od -5 do 5. t = -5:0.1:5; x = -2+t; y = -1+t.^2; dp = plot(x,y,'r','linewidth',5); set(dp,'color',[0.7,0.6,0.8]) nastavení barvy
Příklad: set(dp,'linestyle','--') nastavení stylu křivky set(dp,'linewidth',15) nastavení tloušťky čáry
Pokračování příkladu: Pozn. Chceme-li získat rovnici této paraboly ve tvaru y = ax 2 + bx + c, lze použít příkaz polyfit(x,y,2) ans = 1.0000 4.0000 3.0000 tedy rovnice paraboly je y = x 2 + 4x + 3 Tentýž graf paraboly bychom získali pro x od -7 do 3 (vypočteno z rovnice x = -2 + t pro t = -5 a t = 5). x=[-7:0.1:3]; y=x.^2+4.*x+3; plot(x,y,'linewidth',5)