155GIT1 / 6. cvičení: Porovnání verzí
m →Ukázky |
|||
Řádek 104: | Řádek 104: | ||
</source> | </source> | ||
Vyvolání nápovědy k uživatelské funkci: | |||
<source lang=octave> | <source lang=octave> | ||
Řádek 110: | Řádek 110: | ||
</source> | </source> | ||
Volání funkce (chybná vstupní data): | |||
<source lang=octave> | <source lang=octave> |
Verze z 26. 3. 2017, 05:28
Podmínky a cykly, uživatelské funkce
Náplň cvičení
- složené podmínky
- uživatelské funkce
- chybová hlášení, nápověda k funkci
Ukázky
Složené podmínky
logické AND - všechny podmínky musí platit současně
% iterativni proces skonci jiz pri splneni jedne z pozadovanych presnosti
dx = 10; % pozadovana presnost v souradnici x
dy = 10; % pozadovana presnost v souradnici y
i = 0; % citac iteraci
while dx > 0.1 & dy > 0.1
i = i+1
dx = dx/2
dy = dy/5
end
% totez
dx = 10; % pozadovana presnost v souradnici x
dy = 10; % pozadovana presnost v souradnici y
i = 0; % citac iteraci
while all([dx > 0.1, dy > 0.1]) % totez: while [dx > 0.1, dy > 0.1]
i = i+1
dx = dx/2
dy = dy/5
end
logické OR - musí platit alespoň jedna podmínka
% iterativni proces skonci az po splneni vsech pozadovanych presnosti
dx = 10; % pozadovana presnost v souradnici x
dy = 10; % pozadovana presnost v souradnici y
i = 0; % citac iteraci
while dx > 0.1 | dy > 0.1
i = i+1
dx = dx/2
dy = dy/5
end
% totez
dx = 10; % pozadovana presnost v souradnici x
dy = 10; % pozadovana presnost v souradnici y
i = 0; % citac iteraci
while any([dx > 0.1, dy > 0.1])
i = i+1
dx = dx/2
dy = dy/5
end
Uživatelské funkce
Syntax
function [vystup1,vystup2,...,vystupn] = nazev(vstup1,vstup2,...,vstupn) end % end neni povinne
Každá funkce musí být uložena ve vlastním souboru s příponou .m. Název souboru musí odpovídat názvu funkce! Klíčové slovo function musí být na prvním řádku souboru.
function [min_x, max_x, mean_x] = stat(x)
min_x = min(min(x));
max_x = max(max(x));
mean_x = mean(x(:));
end
Příklad volání
data = rand(5)
[mi, ma, mn] = stat(data)
fprintf('min = %.3f\nmax = %.3f\nmean = %.3f\n', mi, ma, mn)
Chybová hlášení, nápověda
function [min_x, max_x, mean_x] = stat(x)
% vypocet minimalni, maximalni a prumerne hodnoty matice
if any(imag(x)) > 0
error('stat: Vstupni matice obsahuje imaginarni cisla.')
end
min_x = min(min(x));
max_x = max(max(x));
mean_x = mean(x(:));
end
Vyvolání nápovědy k uživatelské funkci:
help stat
Volání funkce (chybná vstupní data):
data1 = [data; 5+2i; 4-3i]
[mi, ma, mn] = stat(data1)
Příkaz return
- je-li v běhu funkce vykonán příkaz return, je okamžitě činnost funkce ukončena (bez vykonání evtl.dalších příkazů) a na pozici jejího volání jsou vráceny aktuálně vypočtené hodnoty výstupních parametrů funkce