34

Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Cvi£ení 3 � Programování v Matlabu

Modelování systém· a proces·

Lucie Kárná

[email protected]

March 9, 2018

Page 2: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

1 Základní °ídicí konstrukce jazyka Matlab

2 Klouzavý pr·m¥r

3 Hod mincí

Page 3: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

m-�les

= p°íkazy uloºené v textovém souboru s p°íponou .m

Typy m-soubor·

scripty sekvence p°íkaz·

v²echny prom¥nné globálnívolají se jménem souboru

m-funkce funkce

v²echny prom¥nné lokálnívstupní a výstupní parametryvolají se jménem funkce a parametryjméno souboru musí být totoºnése jménem funkce

Page 4: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

m-�les

= p°íkazy uloºené v textovém souboru s p°íponou .m

Typy m-soubor·

scripty sekvence p°íkaz·

v²echny prom¥nné globálnívolají se jménem souboru

m-funkce funkce

v²echny prom¥nné lokálnívstupní a výstupní parametryvolají se jménem funkce a parametryjméno souboru musí být totoºnése jménem funkce

Page 5: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

Funkce

function [y1,y2] = fce(x1,x2) <p°íkazy> end

funkce v .m souboru fce.m

P°íklad 1

Naprogramujte funkci dvou prom¥nných geom(x1, x2) =√x1 · x2.

�e²ení

v editoru napí²eme

function y = geom( x1, x2 )

y = sqrt( x1 * x2 );

end

uloºíme pod jménem geom.m

voláme z command line nap°. � a = geom( 7, 11 )

Page 6: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

Funkce

function [y1,y2] = fce(x1,x2) <p°íkazy> end

funkce v .m souboru fce.m

P°íklad 1

Naprogramujte funkci dvou prom¥nných geom(x1, x2) =√x1 · x2.

�e²ení

v editoru napí²eme

function y = geom( x1, x2 )

y = sqrt( x1 * x2 );

end

uloºíme pod jménem geom.m

voláme z command line nap°. � a = geom( 7, 11 )

Page 7: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

Funkce

function [y1,y2] = fce(x1,x2) <p°íkazy> end

funkce v .m souboru fce.m

P°íklad 1

Naprogramujte funkci dvou prom¥nných geom(x1, x2) =√x1 · x2.

�e²ení

v editoru napí²eme

function y = geom( x1, x2 )

y = sqrt( x1 * x2 );

end

uloºíme pod jménem geom.m

voláme z command line nap°. � a = geom( 7, 11 )

Page 8: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

Funkce

function [y1,y2] = fce(x1,x2) <p°íkazy> end

funkce v .m souboru fce.m

P°íklad 1

Naprogramujte funkci dvou prom¥nných geom(x1, x2) =√x1 · x2.

�e²ení

v editoru napí²eme

function y = geom( x1, x2 )

y = sqrt( x1 * x2 );

end

uloºíme pod jménem geom.m

voláme z command line nap°. � a = geom( 7, 11 )

Page 9: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

Funkce

function [y1,y2] = fce(x1,x2) <p°íkazy> end

funkce v .m souboru fce.m

P°íklad 1

Naprogramujte funkci dvou prom¥nných geom(x1, x2) =√x1 · x2.

�e²ení

v editoru napí²eme

function y = geom( x1, x2 )

y = sqrt( x1 * x2 );

end

uloºíme pod jménem geom.m

voláme z command line nap°. � a = geom( 7, 11 )

Page 10: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

for-cyklus

for i=1:n <p°íkazy> end

cyklus, u kterého je p°edem známý po£et opakování

P°íklad 2

Naprogramujte funkci pro výpo£et faktoriálu n!.

�e²ení

function fn = faktorial( n )

fn = 1;

for i = 1:n

fn = fn * i;

end

end

Page 11: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

for-cyklus

for i=1:n <p°íkazy> end

cyklus, u kterého je p°edem známý po£et opakování

P°íklad 2

Naprogramujte funkci pro výpo£et faktoriálu n!.

�e²ení

function fn = faktorial( n )

fn = 1;

for i = 1:n

fn = fn * i;

end

end

Page 12: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

for-cyklus

for i=1:n <p°íkazy> end

cyklus, u kterého je p°edem známý po£et opakování

P°íklad 2

Naprogramujte funkci pro výpo£et faktoriálu n!.

�e²ení

function fn = faktorial( n )

fn = 1;

for i = 1:n

fn = fn * i;

end

end

Page 13: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

while-cyklus

while <podmínka> <p°íkazy> end

cyklus, kde není p°edem známý po£et opakování

P°íklad 3

Naprogramujte funkci, která pro dv¥ p°irozená £íslanajde zbytek po d¥lení prvního £ísla druhým.

�e²ení

function zb = zbytek ( velke, male )

zb = velke;

while zb >= male

zb = zb - male;

end end

Page 14: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

while-cyklus

while <podmínka> <p°íkazy> end

cyklus, kde není p°edem známý po£et opakování

P°íklad 3

Naprogramujte funkci, která pro dv¥ p°irozená £íslanajde zbytek po d¥lení prvního £ísla druhým.

�e²ení

function zb = zbytek ( velke, male )

zb = velke;

while zb >= male

zb = zb - male;

end end

Page 15: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

while-cyklus

while <podmínka> <p°íkazy> end

cyklus, kde není p°edem známý po£et opakování

P°íklad 3

Naprogramujte funkci, která pro dv¥ p°irozená £íslanajde zbytek po d¥lení prvního £ísla druhým.

�e²ení

function zb = zbytek ( velke, male )

zb = velke;

while zb >= male

zb = zb - male;

end end

Page 16: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

V¥tvení

if <podmínka> <p°íkazy> end

if <podmínka> <p°íkazy1> else <p°íkazy2> end

P°íklad 4

function rozhodni ( a, b )

if a>0 disp('a je kladne')

if a==b disp('cisla se rovnaji')

else disp('cisla se nerovnaji')

end

Page 17: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

V¥tvení

if <podmínka> <p°íkazy> end

if <podmínka> <p°íkazy1> else <p°íkazy2> end

P°íklad 4

function rozhodni ( a, b )

if a>0 disp('a je kladne')

if a==b disp('cisla se rovnaji')

else disp('cisla se nerovnaji')

end

Page 18: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

for-cyklus

P°íklad 5

Jaký typ cyklu pouºijeme v p°ípad¥, ºe je na²ím úkolemse£íst kvadráty £íselných hodnot ve vektoru?

�e²ení

P°edem známe po£et opakování (délka vektoru), p·jde o for cyklus.

function s = sumQ( v )

n = length( v );

s = 0;

for i = 1 : n

s = s + v(i) * v(i);

end

end

Page 19: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

for-cyklus

P°íklad 5

Jaký typ cyklu pouºijeme v p°ípad¥, ºe je na²ím úkolemse£íst kvadráty £íselných hodnot ve vektoru?

�e²ení

P°edem známe po£et opakování (délka vektoru), p·jde o for cyklus.

function s = sumQ( v )

n = length( v );

s = 0;

for i = 1 : n

s = s + v(i) * v(i);

end

end

Page 20: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

for-cyklus

P°íklad 5

Jaký typ cyklu pouºijeme v p°ípad¥, ºe je na²ím úkolemse£íst kvadráty £íselných hodnot ve vektoru?

�e²ení

P°edem známe po£et opakování (délka vektoru), p·jde o for cyklus.

function s = sumQ( v )

n = length( v );

s = 0;

for i = 1 : n

s = s + v(i) * v(i);

end

end

Page 21: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

for-cyklus

P°íklad 5

Jaký typ cyklu pouºijeme v p°ípad¥, ºe je na²ím úkolemse£íst kvadráty £íselných hodnot ve vektoru?

�e²ení

P°edem známe po£et opakování (délka vektoru), p·jde o for cyklus.

function s = sumQ( v )

n = length( v );

s = 0;

for i = 1 : n

s = s + v(i) * v(i);

end

end

Page 22: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

while-cyklus

P°íklad 6

Diferen£ní rovnice y [n + 1] = y [n]/2 s po£áte£ní podmínkouy [0] = 10. Úkol: najít hodnotu n, pro niº je y [n] < ε = 0,001.

Iterace:

y [0] = 10

y [1] = y [0]/2 = 5

y [2] = y [1]/2 = 2.5

y [3] = y [2]/2 = 1.25

. . .

�e²ení

Neznáme po£et opakování ⇒ while.

function n = mylim( y0, eps)

n = 0; y = y0;

while y >= eps

y = y/2; n = n + 1;

end

end

Page 23: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

while-cyklus

P°íklad 6

Diferen£ní rovnice y [n + 1] = y [n]/2 s po£áte£ní podmínkouy [0] = 10. Úkol: najít hodnotu n, pro niº je y [n] < ε = 0,001.

Iterace:

y [0] = 10

y [1] = y [0]/2 = 5

y [2] = y [1]/2 = 2.5

y [3] = y [2]/2 = 1.25

. . .

�e²ení

Neznáme po£et opakování ⇒ while.

function n = mylim( y0, eps)

n = 0; y = y0;

while y >= eps

y = y/2; n = n + 1;

end

end

Page 24: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

while-cyklus

P°íklad 6

Diferen£ní rovnice y [n + 1] = y [n]/2 s po£áte£ní podmínkouy [0] = 10. Úkol: najít hodnotu n, pro niº je y [n] < ε = 0,001.

Iterace:

y [0] = 10

y [1] = y [0]/2 = 5

y [2] = y [1]/2 = 2.5

y [3] = y [2]/2 = 1.25

. . .

�e²ení

Neznáme po£et opakování ⇒ while.

function n = mylim( y0, eps)

n = 0; y = y0;

while y >= eps

y = y/2; n = n + 1;

end

end

Page 25: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Základní °ídicí konstrukce jazyka Matlab

while-cyklus

P°íklad 6

Diferen£ní rovnice y [n + 1] = y [n]/2 s po£áte£ní podmínkouy [0] = 10. Úkol: najít hodnotu n, pro niº je y [n] < ε = 0,001.

Iterace:

y [0] = 10

y [1] = y [0]/2 = 5

y [2] = y [1]/2 = 2.5

y [3] = y [2]/2 = 1.25

. . .

�e²ení

Neznáme po£et opakování ⇒ while.

function n = mylim( y0, eps)

n = 0; y = y0;

while y >= eps

y = y/2; n = n + 1;

end

end

Page 26: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Klouzavý pr·m¥r

Klouzavý pr·m¥r

pr·m¥r konstantního po£tu za sebou jdoucích hodnotslouºí k vyhlazení £asové °ady

Úkol

naprogramovat funkci y = ravg( x, w )

x vektor vstupních datw ²í°ka okna (po£et pr·m¥rovaných hodnot)y výstup

zobrazit x a y v grafu v r·zných barvách

k pr·m¥rování pouºít funkci mean()

po£áte£ní hodnoty pro i < w zkopírovat ze vstupu

vstup: dopravní datahttp://zolotarev.fd.cvut.cz/static/msap/data.mat

Page 27: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Klouzavý pr·m¥r

Klouzavý pr·m¥r

pr·m¥r konstantního po£tu za sebou jdoucích hodnotslouºí k vyhlazení £asové °ady

Úkol

naprogramovat funkci y = ravg( x, w )

x vektor vstupních datw ²í°ka okna (po£et pr·m¥rovaných hodnot)y výstup

zobrazit x a y v grafu v r·zných barvách

k pr·m¥rování pouºít funkci mean()

po£áte£ní hodnoty pro i < w zkopírovat ze vstupu

vstup: dopravní datahttp://zolotarev.fd.cvut.cz/static/msap/data.mat

Page 28: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Klouzavý pr·m¥r

Klouzavý pr·m¥r

pr·m¥r konstantního po£tu za sebou jdoucích hodnotslouºí k vyhlazení £asové °ady

Úkol

naprogramovat funkci y = ravg( x, w )

x vektor vstupních datw ²í°ka okna (po£et pr·m¥rovaných hodnot)y výstup

zobrazit x a y v grafu v r·zných barvách

k pr·m¥rování pouºít funkci mean()

po£áte£ní hodnoty pro i < w zkopírovat ze vstupu

vstup: dopravní datahttp://zolotarev.fd.cvut.cz/static/msap/data.mat

Page 29: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Klouzavý pr·m¥r

Klouzavý pr·m¥r

pr·m¥r konstantního po£tu za sebou jdoucích hodnotslouºí k vyhlazení £asové °ady

Úkol

naprogramovat funkci y = ravg( x, w )

x vektor vstupních datw ²í°ka okna (po£et pr·m¥rovaných hodnot)y výstup

zobrazit x a y v grafu v r·zných barvách

k pr·m¥rování pouºít funkci mean()

po£áte£ní hodnoty pro i < w zkopírovat ze vstupu

vstup: dopravní datahttp://zolotarev.fd.cvut.cz/static/msap/data.mat

Page 30: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Klouzavý pr·m¥r

Klouzavý pr·m¥r � °e²ení

Funkce v souboru ravg.m

function y = ravg( x, w)

y = x;

for j = w : length( x )

i = j - w + 1;

y(j) = mean( x(i:j) );

end

Vykreslení výsledku

� load data.mat

� y = ravg ( data, 10 );

� plot( data );

� hold on;

� plot(y,'r','linewidth',2)

Page 31: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Klouzavý pr·m¥r

Klouzavý pr·m¥r � °e²ení

Funkce v souboru ravg.m

function y = ravg( x, w)

y = x;

for j = w : length( x )

i = j - w + 1;

y(j) = mean( x(i:j) );

end

Vykreslení výsledku

� load data.mat

� y = ravg ( data, 10 );

� plot( data );

� hold on;

� plot(y,'r','linewidth',2)

Page 32: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Hod mincí

Simulace hodu férovou mincí

s pravd¥podobností panna-orel 50�50

Úkol

Naprogramovat funkci [s,p,o]=coin(n) simulující n hod· mincí.Výstupem je

vektor (°et¥zec) s obsahující symboly 'P' a 'O',

celé £íslo p udávající, kolikrát padla panna, a

celé £íslo o udávající, kolikrát padl orel.

Page 33: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou

Cvi£ení 3 � Programování v Matlabu

Hod mincí

Hod mincí � °e²ení

�e²ení

function [s,p,o] = coin( n )

s = char ( zeros ( 1, n ));

p = 0, o = 0;

for i = 1:n

r = rand();

if r < 0.5

s(i) = 'P'; p = p + 1;

else

s(i) = 'O'; o = o + 1;

end end

Page 34: Cvi£ení 3 Programování v Matlabu - cvut.cz · 2018-03-09 · Cvi£ení 3 Programování v Matlabu Klouzavý r·m¥rp Klouzavý pr·m¥r pr·m¥r konstantního po£tu za sebou