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 0 0 0 0 0 0 0 0
7 0 0 0 0 0 0 0 0
0 6 0 0 0 0 0 0 0
9 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 0 0
0 0 0 0 0 0 5 0 0
0 0 0 0 0 0 0 0 0
Řízení vzhledu textů v grafech – příkazy LaTeXu dolní index – t1 se zapíše t_1 horní index – t2 se zapíše t^2 - má-li platit příkaz pro více znaků – použijeme {} např. x_{23} vytiskne x23 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 – t1 se zapíše t_1 horní index – t2 se zapíše t^2 - má-li platit příkaz pro více znaků – použijeme {} např. x_{23} vytiskne x23 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 dolní index plot(t,uV,'r') se zapíše plot(t,uW,'g') pomocí _ 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 – t1 se zapíše t_1 horní index – t2 se zapíše t^2 - má-li platit příkaz pro více znaků – použijeme {} např. x_{23} vytiskne x23 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 dolní index plot(t,uV,'r') se zapíše plot(t,uW,'g') pomocí _ hold off xlabel('t') ylabel('u') legend('u_U','u_V','u_W') axis([0,0.05,-300,500])
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 před znakem ^ tečka – operace . ^ , umocnění proběhne prvek po prvku
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') 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: 2 graf y = e-x pro x od -1.5 do 1.5 se změnou měřítka os x a y xmin= –1, xmax= 1, ymin = 0, ymax = 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: 2 graf y = e-x pro x od -1.5 do 1.5 se změnou měřítka os x a y xmin= –1, xmax= 1, ymin = 0, ymax = 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: 2 graf y = e-x pro x od -1.5 do 1.5 se změnou měřítka os x a y xmin= –1, xmax= 1, ymin = 0, ymax = 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 10od až 10do – pozor pokud uvedeme jen parametry od a do, počet kroků je automaticky 50, např. x4 = logspace(2,8,10) – vektor od 102 až 108 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 . K ( ) U 2 U
U1
Amplitudová frekvenční charakteristika je závislost absolutní hodnoty přenosu KU na frekvenci a fázová frekvenční charakteristika je závislost úhlu arctg Im[K ] na frekvenci . U
Re[ KU ]
Vykreslete amplitudovou a fázovou frekvenční charakteristiku filtru – RC integračního členu v rozsahu 1 rad/s až 1·105 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:
Pomocí vztahu pro w = logspace(0, 5, 100); napěťový dělič: R = 10; 1 C = 1e-3; U jC Ku = 1./(j*w*C)./(R+1./(j*w*C)); KU 2 = U1 R 1 Ku_abs = abs(Ku); jC Ku_uhel = angle(Ku)/pi*180; subplot(2,1,1); R semilogx(w, Ku_abs); grid xlabel('\omega (rad/s)'); ylabel('|K_u|'); subplot(2,1,2); C semilogx(w, Ku_uhel); grid xlabel('\omega (rad/s)'); ylabel('uhel K_u');
Pokračování příkladu: RC integrační člen – dolní propusť, dáno R = 10 , C = 1 mF: 100
105
Pomocí vztahu pro w = logspace(0, 5, 100); R = 10; operace . / napěťový dělič: 1 nutná C = 1e-3; velikost U2 jC Ku = 1./(j*w*C)./(R+1./(j*w*C)); K = U KU U1 R 1 Ku_abs = abs(Ku); jC úhel ve Ku_uhel = angle(Ku)/pi*180; stupních subplot(2,1,1); R semilogx(w, Ku_abs); grid xlabel('\omega (rad/s)'); závislost absolutní ylabel('|K_u|'); hodnoty přenosu KU na frekvenci ω subplot(2,1,2); C semilogx(w, Ku_uhel); grid závislost úhlu (fáze) KU xlabel('\omega (rad/s)'); na frekvenci ω ylabel('uhel K_u');
Pokračování příkladu: RC integrační člen – dolní propusť, dáno R = 10 , C = 1 mF:
Pomocí vztahu pro w = logspace(0, 5, 100); napěťový dělič: 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');
Řízení vzhledu textů v popisech grafů – příkazy LaTeXu dolní index: _ horní index: ^ • speciální symboly (např. řecká písmena atp.) Ω \Omega ω \omega viz nápověda MATLABu α \alpha β \beta pod heslem Text Properties Φ \Phi ° \circ (platí tedy pro MATLAB) π \pi ⌠ \int, atp. ⌡ • č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í ysin = 0,5 sin(α2) a ycos = cos2(α) 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(x2 + y2) 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 = sin2x2 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 = sin2x2 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 = sin2x2 pro x od -5 do 5: odkaz v příkazu fplot fplot(@(x)(sin(x.^2)).^2,[-5, 5])
např. pro b = cos(1/a2) 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 sin2t2 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; odkaz na funkci sin2x2 otherwise fprintf('Takovou funkci tu nemam.\n'); continue; end; t = [0,2*pi]; test, zda existuje if (exist('graf')) proměnná graf close(graf); clear graf; end; pokud proměnná graf existuje, graf = figure; grafické okno s číslem graf se fplot(testf,t); zavře a proměnná se smaže title(h); end; close(graf) fprintf('Nashledanou, hezky den...\n'); end Ve funkci demo_funkce je function y = sin2x2(x) odkaz na funkci sin2x2 y=(sin(x.^2)).^2; end
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 = x2 +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π : 2
2
např. pro z = x e(-x - y ) 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 yk1/(xk2 + yk3) 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 yk1/(xk2 + yk3) pro x, y od - 2π do 2π, k1= 3, k2= 4, k3= 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 zavře grafické hold off okno 3 c = figure c = 3 close(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)) krok 1 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: ''
set(dp,'Nazev vlastnosti',hodnota_vlastnosti) – nastavení hodnoty vlastnosti
Příklad: Vykreslení paraboly zadané parametrickými rovnicemi x = -2 + t, y = -1 + t2, 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 = ax2 + bx + c, lze použít příkaz polyfit(x,y,2) ans = 1.0000 4.0000 3.0000 tedy rovnice paraboly je y = x2 + 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)