1 / 18

MATLAB vytváření funkcí, grafika

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). Struktura funkce:.

kare
Download Presentation

MATLAB vytváření funkcí, grafika

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MATLABvytváření funkcí, grafika

  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) Struktura funkce: function[vystup]=jmeno(vstup) příkazy • 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 d d1 d2

  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í Příkaz input: prom =input(vysvětlující text) function c=prepona(a,b) % Vypocet prepony c=sqrt(a^2+b^2); % Hlavni program (skript) % Data a=input(’prvni odvesna=’); b=input(’druha odvesna=’); % volani funkce c=prepona(a,b)

  7. MATLAB: vytváření funkcí Příklady na If analogické jako ve VB: function v=podil(x,y) if x~=0 v= y/x; end 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í Příklady na For analogické jako ve VB: function f=fakt(n) f=1; for i=1:n f=f*i; end

  10. MATLAB: vytváření funkcí Příklady na While analogické jako ve VB na Do: 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

  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. clearall; closeall% 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])    % grafickavylepseni 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)% nejjednodussizobrazeni  % 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))

More Related