SlideShare a Scribd company logo
1 of 18
MATLAB
vytváření funkcí, grafika
MATLAB : vytváření funkcí
Vytváří se v okně Editoru:
 spustí se z hlavního menu, File, New, M-file
 okno Editoru obsahuje vlastní menu pro práci s funkcí
 při ladění funkce lze použít krokovač (Debugger)
function [vystup]=jmeno(vstup)
příkazy
Struktura funkce:
 oddělovač vstupů a výstupů je čárka
 komentář začíná %
 první komentář se zobrazí jako nápověda, help jmeno
MATLAB : vytváření funkcí
Sestavte funkci pro výpočet délky řemenice mezi dvěma koly.
d1 … průměr prvního kola
d2 … průměr druhého kola
d … vzdálenost os kol
d1 d2
d
function [l]=Remen(d1,d2,d)
% Delka remenice mezi dvema koly
% [l]=Remen(d1,d2,d);
% l ... delka remenice
% d1 ... prumer prvniho kola
% d2 ... prumer druheho kola (d1>=d2)
% d ... vzdalenost os kol
r1=d1/2; r2=d2/2; % vypocet polomeru obou kol
% delka rovneho useku remenice dle Pythagora:
lsikmo=sqrt(d^2-(r1-r2)^2);
% uhel mezi rovnym usekem remenice a spojnici os kol:
phi=asin((r1-r2)/d);
omega1=pi+2*phi; % stredovy uhel na prvnim kole
omega2=pi-2*phi; % stredovy uhel na druhem kole
l1=omega1*r1; % delka oblouku remenice na prvnim kole
l2=omega2*r2; % delka oblouku remernice na druhem kole
l=l1+l2+2*lsikmo; % uz je to tady
MATLAB : vytváření funkcí
Krokování nastavuje Debug v okně Editoru:
 nastaví se zastavení programu (Set/Clear Breakpoint)
 po spuštění se program zastaví na zvolené řádce
 Command Window se přepne do krokovacího režimu ( K>> )
 lze vypisovat hodnoty proměnných
 krokování F10 / F11 / … (vyzkoušejte)
 zastavení programu pomocí podmínky (Conditional Breakpoint)
 zastavení při chybě, varování, NaN, Inf
MATLAB : vytváření funkcí
function c=prepona(a,b)
% Vypocet prepony
c=sqrt(a^2+b^2);
Příkaz input: prom = input( vysvětlující text )
% Hlavni program (skript)
% Data
a=input(’prvni odvesna=’);
b=input(’druha odvesna=’);
% volani funkce
c=prepona(a,b)
MATLAB : vytváření funkcí
function v=podil(x,y)
if x~=0
v = y/x;
end
Příklady na If analogické jako ve VB:
function s=test(a)
if rem(a,2)==0
s=’Sude’;
else
s=’Liche’;
end
MATLAB : vytváření funkcí
function d=dan(prijem)
if prijem<=91440
d = prijem*0.15;
elseif prijem<=183000
d = 13716+((prijem-91440)*0.2);
elseif prijem<=274200
d = 32028+((prijem-183000)*0.25);
elseif prijem<=822600
d = 54828+((prijem-274200)*0.32);
else
d = 230316+((prijem-822600)*0.4);
end
MATLAB : vytváření funkcí
function f=fakt(n)
f=1;
for i=1:n
f=f*i;
end
Příklady na For analogické jako ve VB:
MATLAB : vytváření funkcí
function e=euler(epss)
e=1; f=1; i=1; clen=1;
while clen>=epss
f = f*i;
clen = 1/f;
e = e + clen;
i = i+1;
end
Příklady na While analogické jako ve VB na Do:
MATLAB : 2D grafika
Příkaz plot: plot(x,y,’l’)
 x … x-ové souřadnice, y … y-ové souřadnice, l … barva, symbol
 otevře se grafické okno Figure s grafem
 vyzkoušejte help plot
 grid … přidá pomocnou mřížku
 axis([xmin,xmax,ymin,ymax]) … změna rozsahu nastavení
 xlabel(’text’), ylabel(’text’) … popisy os
 text(x,y,’text’) … vložení textu do bodu (x,y)
 gtext(’text’) … vložení textu do bodu kliknutí myší
 title(’text’) … nadpis grafu
 hold on … nakreslený graf nebude vymazaná při dalším kreslení
… vypne hold off
MATLAB : 2D grafika
Znázorněte funkce y1 = ex, y2 = e2x, y3 = ex/2 na intervalu <-1, 1>
s krokem h=0.1.
clear all; close all % mazání proměnných, graf. oken
a=-1; b=1; h=0.1; % meze intervalu a krok
x=a:h:b; x=x';
y1=exp(x); y2=exp(2*x); y3=exp(x/2);
plot(x,[y1 y2 y3])
% graficka vylepseni
grid % mrizka
axis([-1 1 0 10]) % rozsah nastavení
xlabel('x'), ylabel('f(x)'), title('Exponencialni funkce')
plot(x,y1)
figure(1) % nove okno pro grafiku
plot(x,y2,'r.') % styl zobrazeni
hold on % drzeni okna
plot(x,y1,'b:') % styl zobrazeni
MATLAB : 3D grafika
Zobrazení ploch a prostorových křivek:
mesh(x,y,z), plot3(x,y,z)
meshc, surf, surfc, surfl, surface, contour …
 x, y, z … x-ové, y-ové, z-ové souřadnice
 meshgrid … vygeneruje souřadnice bodů
 surface … vytváří objekt, který lze dále upravovat
 contour … průmět do roviny x,y vytvoří ”vrstevnice”
 colormap, colorbar … nastavení barev, kombinuje se
červená-zelená-modrá v rozsahu <0;1>
MATLAB : 3D grafika
[x,y]=meshgrid(-2:.1:2); % vytvoreni site
z=-x.*exp(-x.^2-y.^2); % definice funkce
plot3(x,y,z) % nejjednodussi zobrazeni
% zobrazeni v barvach
mesh(x,y,z), title('graf fce'), xlabel('x'), ylabel('y')
colormap([0 0 1]) % změna barevne skaly, modra
figure(2), meshc(x,y,z) % navic prumet do roviny x,y
figure(3), surf(x,y,z) % povrch, vypada jako pevne teleso
surfc(x,y,z) % a jeste prida prumet do roviny x,y
surfl(x,y,z) % nasvetleni objektu, default 45 stupnu
s=[80,10]; surfl(x,y,z,s) % vlastni nasvetleni, s=[azimut, elevace]
% lze vtvorit surface jako objekt a potom s nim pracovat
s1=surface(x,y,z); get(s1)
% prumet do roviny contour(x,y,z)
MATLAB : grafický objekt
Grafické okno Figure je objekt gcf (číslo aktuálního grafického okna).
 obecný příkaz pro práci s objektem
název = příkaz(vlastnost,hodnota) např. aaa=figure(1)
 nastavení vlastnosti objektu
set(objekt,vlastnost,hodnota)
 výpis vlastností objektu
get(objekt)
MATLAB : grafický objekt
% Definice umístení grafického okna a jeho vlastností
figure; % otevreni okna
% pozice okna
set(gcf,'Units','Normal','Position',[0.4,0.5,0.5,0.3])
% pozice souradneho systemu
s1=axes('Position',[0.1,0.1,0.8,0.7])
plot(sin(0:pi/10:2*pi)) % graf fce
% zjisti vlastnosti grafickeho okna
get(gcf)
% zjisti vlastnosti grafu v ramci okna
get(s1)
% Vybrane vlastnosti objektu s1 a jejich prednastaveni
% Color [x y z] barva plochy grafu
set(s1,'Color',[1 0 0]) % cervena
set(s1,'Color',[0 1 0]) % zelena
set(s1,'Color',[0 0 1]) % modra
… pokračuje …
MATLAB : grafický objekt
… pokračování …
% Box on/off obrys grafu
set(s1,'Box','off')
set(s1,'Box','on')
% Dalsi, napr. pro popis grafu
% FontName 'jmeno', FontSize [velikost],
% LineWidth [velikost], NextPlot 'replace'
% Visible on/off viditelnost grafu
% XColor, YColor, ZColor barva os, vztahuje se i na grid
% Nelze menit barvu grafu, je to jiny objekt!!!
MATLAB : grafický objekt
Nastavení více grafických polí v jednom okně: subplot
% a) 2 grafy pod sebou
subplot(211), plot(sin(0:pi/10:2*pi))
subplot(212), plot(cos(0:pi/10:2*pi))
% b) 2 grafy vedle sebe
figure; subplot(121), plot(sin(0:pi/10:2*pi))
subplot(122), plot(cos(0:pi/10:2*pi))
% c) 4 grafy
figure; subplot(221), plot(sin(0:pi/10:2*pi))
subplot(222), plot(cos(0:pi/10:2*pi))
subplot(223), plot(2*sin(0:pi/10:2*pi))
subplot(224), plot(2*cos(0:pi/10:2*pi))
% d) 3 g. spodni vetsi
figure; subplot(221), plot(sin(0:pi/10:2*pi))
subplot(222), plot(cos(0:pi/10:2*pi))
subplot(212), plot(2*cos(0:pi/10:2*pi))

More Related Content

Featured

How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
ThinkNow
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
Kurio // The Social Media Age(ncy)
 

Featured (20)

Everything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPTEverything You Need To Know About ChatGPT
Everything You Need To Know About ChatGPT
 
Product Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage EngineeringsProduct Design Trends in 2024 | Teenage Engineerings
Product Design Trends in 2024 | Teenage Engineerings
 
How Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental HealthHow Race, Age and Gender Shape Attitudes Towards Mental Health
How Race, Age and Gender Shape Attitudes Towards Mental Health
 
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdfAI Trends in Creative Operations 2024 by Artwork Flow.pdf
AI Trends in Creative Operations 2024 by Artwork Flow.pdf
 
Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 

dokumen.tips_matlab-vytvareni-funkci-grafika.ppt

  • 2. MATLAB : vytváření funkcí Vytváří se v okně Editoru:  spustí se z hlavního menu, File, New, M-file  okno Editoru obsahuje vlastní menu pro práci s funkcí  při ladění funkce lze použít krokovač (Debugger) function [vystup]=jmeno(vstup) příkazy Struktura funkce:  oddělovač vstupů a výstupů je čárka  komentář začíná %  první komentář se zobrazí jako nápověda, help jmeno
  • 3. MATLAB : vytváření funkcí Sestavte funkci pro výpočet délky řemenice mezi dvěma koly. d1 … průměr prvního kola d2 … průměr druhého kola d … vzdálenost os kol d1 d2 d
  • 4. function [l]=Remen(d1,d2,d) % Delka remenice mezi dvema koly % [l]=Remen(d1,d2,d); % l ... delka remenice % d1 ... prumer prvniho kola % d2 ... prumer druheho kola (d1>=d2) % d ... vzdalenost os kol r1=d1/2; r2=d2/2; % vypocet polomeru obou kol % delka rovneho useku remenice dle Pythagora: lsikmo=sqrt(d^2-(r1-r2)^2); % uhel mezi rovnym usekem remenice a spojnici os kol: phi=asin((r1-r2)/d); omega1=pi+2*phi; % stredovy uhel na prvnim kole omega2=pi-2*phi; % stredovy uhel na druhem kole l1=omega1*r1; % delka oblouku remenice na prvnim kole l2=omega2*r2; % delka oblouku remernice na druhem kole l=l1+l2+2*lsikmo; % uz je to tady
  • 5. MATLAB : vytváření funkcí Krokování nastavuje Debug v okně Editoru:  nastaví se zastavení programu (Set/Clear Breakpoint)  po spuštění se program zastaví na zvolené řádce  Command Window se přepne do krokovacího režimu ( K>> )  lze vypisovat hodnoty proměnných  krokování F10 / F11 / … (vyzkoušejte)  zastavení programu pomocí podmínky (Conditional Breakpoint)  zastavení při chybě, varování, NaN, Inf
  • 6. MATLAB : vytváření funkcí function c=prepona(a,b) % Vypocet prepony c=sqrt(a^2+b^2); Příkaz input: prom = input( vysvětlující text ) % Hlavni program (skript) % Data a=input(’prvni odvesna=’); b=input(’druha odvesna=’); % volani funkce c=prepona(a,b)
  • 7. MATLAB : vytváření funkcí function v=podil(x,y) if x~=0 v = y/x; end Příklady na If analogické jako ve VB: function s=test(a) if rem(a,2)==0 s=’Sude’; else s=’Liche’; end
  • 8. MATLAB : vytváření funkcí function d=dan(prijem) if prijem<=91440 d = prijem*0.15; elseif prijem<=183000 d = 13716+((prijem-91440)*0.2); elseif prijem<=274200 d = 32028+((prijem-183000)*0.25); elseif prijem<=822600 d = 54828+((prijem-274200)*0.32); else d = 230316+((prijem-822600)*0.4); end
  • 9. MATLAB : vytváření funkcí function f=fakt(n) f=1; for i=1:n f=f*i; end Příklady na For analogické jako ve VB:
  • 10. MATLAB : vytváření funkcí function e=euler(epss) e=1; f=1; i=1; clen=1; while clen>=epss f = f*i; clen = 1/f; e = e + clen; i = i+1; end Příklady na While analogické jako ve VB na Do:
  • 11. MATLAB : 2D grafika Příkaz plot: plot(x,y,’l’)  x … x-ové souřadnice, y … y-ové souřadnice, l … barva, symbol  otevře se grafické okno Figure s grafem  vyzkoušejte help plot  grid … přidá pomocnou mřížku  axis([xmin,xmax,ymin,ymax]) … změna rozsahu nastavení  xlabel(’text’), ylabel(’text’) … popisy os  text(x,y,’text’) … vložení textu do bodu (x,y)  gtext(’text’) … vložení textu do bodu kliknutí myší  title(’text’) … nadpis grafu  hold on … nakreslený graf nebude vymazaná při dalším kreslení … vypne hold off
  • 12. MATLAB : 2D grafika Znázorněte funkce y1 = ex, y2 = e2x, y3 = ex/2 na intervalu <-1, 1> s krokem h=0.1. clear all; close all % mazání proměnných, graf. oken a=-1; b=1; h=0.1; % meze intervalu a krok x=a:h:b; x=x'; y1=exp(x); y2=exp(2*x); y3=exp(x/2); plot(x,[y1 y2 y3]) % graficka vylepseni grid % mrizka axis([-1 1 0 10]) % rozsah nastavení xlabel('x'), ylabel('f(x)'), title('Exponencialni funkce') plot(x,y1) figure(1) % nove okno pro grafiku plot(x,y2,'r.') % styl zobrazeni hold on % drzeni okna plot(x,y1,'b:') % styl zobrazeni
  • 13. MATLAB : 3D grafika Zobrazení ploch a prostorových křivek: mesh(x,y,z), plot3(x,y,z) meshc, surf, surfc, surfl, surface, contour …  x, y, z … x-ové, y-ové, z-ové souřadnice  meshgrid … vygeneruje souřadnice bodů  surface … vytváří objekt, který lze dále upravovat  contour … průmět do roviny x,y vytvoří ”vrstevnice”  colormap, colorbar … nastavení barev, kombinuje se červená-zelená-modrá v rozsahu <0;1>
  • 14. MATLAB : 3D grafika [x,y]=meshgrid(-2:.1:2); % vytvoreni site z=-x.*exp(-x.^2-y.^2); % definice funkce plot3(x,y,z) % nejjednodussi zobrazeni % zobrazeni v barvach mesh(x,y,z), title('graf fce'), xlabel('x'), ylabel('y') colormap([0 0 1]) % změna barevne skaly, modra figure(2), meshc(x,y,z) % navic prumet do roviny x,y figure(3), surf(x,y,z) % povrch, vypada jako pevne teleso surfc(x,y,z) % a jeste prida prumet do roviny x,y surfl(x,y,z) % nasvetleni objektu, default 45 stupnu s=[80,10]; surfl(x,y,z,s) % vlastni nasvetleni, s=[azimut, elevace] % lze vtvorit surface jako objekt a potom s nim pracovat s1=surface(x,y,z); get(s1) % prumet do roviny contour(x,y,z)
  • 15. MATLAB : grafický objekt Grafické okno Figure je objekt gcf (číslo aktuálního grafického okna).  obecný příkaz pro práci s objektem název = příkaz(vlastnost,hodnota) např. aaa=figure(1)  nastavení vlastnosti objektu set(objekt,vlastnost,hodnota)  výpis vlastností objektu get(objekt)
  • 16. MATLAB : grafický objekt % Definice umístení grafického okna a jeho vlastností figure; % otevreni okna % pozice okna set(gcf,'Units','Normal','Position',[0.4,0.5,0.5,0.3]) % pozice souradneho systemu s1=axes('Position',[0.1,0.1,0.8,0.7]) plot(sin(0:pi/10:2*pi)) % graf fce % zjisti vlastnosti grafickeho okna get(gcf) % zjisti vlastnosti grafu v ramci okna get(s1) % Vybrane vlastnosti objektu s1 a jejich prednastaveni % Color [x y z] barva plochy grafu set(s1,'Color',[1 0 0]) % cervena set(s1,'Color',[0 1 0]) % zelena set(s1,'Color',[0 0 1]) % modra … pokračuje …
  • 17. MATLAB : grafický objekt … pokračování … % Box on/off obrys grafu set(s1,'Box','off') set(s1,'Box','on') % Dalsi, napr. pro popis grafu % FontName 'jmeno', FontSize [velikost], % LineWidth [velikost], NextPlot 'replace' % Visible on/off viditelnost grafu % XColor, YColor, ZColor barva os, vztahuje se i na grid % Nelze menit barvu grafu, je to jiny objekt!!!
  • 18. MATLAB : grafický objekt Nastavení více grafických polí v jednom okně: subplot % a) 2 grafy pod sebou subplot(211), plot(sin(0:pi/10:2*pi)) subplot(212), plot(cos(0:pi/10:2*pi)) % b) 2 grafy vedle sebe figure; subplot(121), plot(sin(0:pi/10:2*pi)) subplot(122), plot(cos(0:pi/10:2*pi)) % c) 4 grafy figure; subplot(221), plot(sin(0:pi/10:2*pi)) subplot(222), plot(cos(0:pi/10:2*pi)) subplot(223), plot(2*sin(0:pi/10:2*pi)) subplot(224), plot(2*cos(0:pi/10:2*pi)) % d) 3 g. spodni vetsi figure; subplot(221), plot(sin(0:pi/10:2*pi)) subplot(222), plot(cos(0:pi/10:2*pi)) subplot(212), plot(2*cos(0:pi/10:2*pi))