%% Cvičení 1 - Úvod. Základy práce v prostředí Matlab
% Evženie Uglickich, http://staff.utia.cas.cz/uglickich/
% Table of Contents
% Cvičení:
% Zápočet:
% Zkouška:
% Základy práce v prostředí Matlab
%     Okna, základy práce
% Základy programování v Matlabu
%     Skaláry
%         Zadání:
%     Vektory
%     Matice
%         Zadání:
%     Speciální typy matic - funkce eye, zero, ones, magic
%     Použití dvojtečky
%     Výběr prvků z matice
%         Zadání:
% Některé funkce Matlabu
%     size
%     min, max
%     plot
% Zadání pro samostatnou práci - Matlab Grader
%
%% Cvičení:
% Cvičení se konají i před přednáškou, tedy hned první týden!
% Před 1. cvičením je nutné si zařídit účet v Mathworks přes školní účet, se školním emailem. Návod od správců IT je zde.
% Není možné přecházet mezi skupinami – jedině formou tzv. kus za kus. V odůvodněných případech se lze s cvičícím domluvit, ale například z důvodu kapacity místnosti můžete být odmítnuti.
% Chybějící cvičení – státní svátky, školní volna – si může student v dotčeném cvičení nahradit v jiném cvičení v daném týdnu.
% Výjimečně může jít student na cvičení s jinou skupinou (lékař, osobní důvody, školní akce). V tomto případě se musí domluvit s cvičícím, zda je tam v dané skupině volno.
%%
%% Zápočet:
% Zápočet se uděluje za dva testy v 5.  (od 18. 3) a 14. týdnu (od 20. 5)  – z každého je nutné získat alespoň 70 % bodů. Testy se píší v hodině v kmenové skupině.
% V případě, že nesplní požadavek z testu č. 1 a/nebo z testu číslo 2, v 1. týdnu zkouškového se píšou opravné testy. Opravné testy budou vypsány v KOSu, je nutné se na daný test přihlásit přes tuto aplikaci. Kdo nebude přihlášen, nemůže se testu zúčastnit.
% V případě, že student nesplní podmínky ani po opravném testu, 2. týden zkouškového (pondělí nebo úterý) se bude psát tzv. opravný test opravného – to bude kompletní test za celý semestr. Také je nutné získat 70 % bodů.
% V případě, že student nenapíše ani opravný opravného, musí si předmět zapsat znovu.
% Testy nelze psát online.
% Všechny testy se píší v programu Matlab Grader.
% Výjimky: zdravotní důvody dlouhodobé – student se domluví se svým cvičícím. Karanténa, nemoc – doložené – student může napsat 2 opravné testy 1. týden zkouškového. Mimořádné termíny během semestru se nedělají. Erasmus – v případě, že student odjíždí na studijní pobyt do zahraničí – domluví se se svým cvičícím
%% Zkouška:
% Zkouší se pouze ve zkouškovém období letního semestru!
% Bez zápočtu není možné se přihlásit na zkoušku.
% Zkoušení probíhá pouze ústní formou.
% 5 otázek:
% 1 příklad – slovní úloha
% 4. teoretické příklady – náhodně vygenerovaná otázka ze seznamu otázek – zhruba z každé čtvrtiny jedna otázka
% Student nezná odpověď na jednu otázku (neví o ní nic) – je hodnocen známkou F.
% 1. otázka je slovní úloha: to znamená, že v případě, že nezná odpověď na slovní úlohu – nemusí pokračovat na ústní otázky. Není to žádný rozstřel, stejné by to bylo u teoretických otázek – pokud nezná odpověď – je hodnocen známkou F.
% Pokud student odpoví správně na slovní úlohu, ale celkově je hodnocen známkou F, při příštím pokusu dělá opět i slovní úlohu (platí všech 5 otázek)
% Neomluvená neúčast od studenta (mail některému ze zkoušejících – Pecherková, Provinský, Uglickich), zkouška je ohodnocena známkou F.
%
%% Základy práce v prostředí Matlab
% Instalace: https://www.mathworks.com/
% Matlab 2023b + Statistics toolbox
% nebo Matlab Online
% Návod na instalaci + odkazy na webu http://staff.utia.cas.cz/uglickich/
% Užitečné odkazy:
% Matlab drive https://drive.matlab.com/login
%% Okna, základy práce
% Okna - průzkumník souborů (Current folder), konzole (Command window), prohlížeč proměnných (Workspace)
% Konzole - kalkulačka 3+2, 6-5, 345*14, 48/3, 3^2, sqrt(9), 0.5 - tečka u desetinných čísel
% help
%%
%% Základy programování v Matlabu
% Kódy .mlx a .m
% Funkce clear, clc, close.  Komentáře %

clear, clc, close 
% clear  vyčistí paměť
% clc vyčistí konzoli
% close zavře okna s obrázky

%% Skaláry

a=5;  % se středníkem se výsledek nevypíše na obrazovku. Proměnná se objeví v Prohlížeči proměnných



x=7 % jinak se vypíše. Proměnná se objeví v Prohlížeči proměnných

% Run nebo F5 - spustí program

%% Zadání:
% Přiřaďte k proměnné skalar hodnotu 4

% pište sem

% Přiřadte k proměnné skalar2 hodnotu 7 tak, aby se nevypsala



% Vynásobte proměnné skalar a skalar2



%% Vektory

s=[3 1 2] % řádkový vektor 


p=[2; 5; 6] % sloupcový vektor nebo 


p=[2 5 6]' %jako transponovaný řádkový

%% Matice

b=[3 4 1; 5 6 7; 3 5 8] % matice - na konci řádku středník
g=[b;s] % matice z proměnných b a s

%% Zadání:
% Napište řádkový vektor rad_vektor, který má 4 prvky: 15.4   7   8   13



% Napište slopcový vektor sl_vektor, který má 4 prvky: 2  1.7   1   5^2



% Vytvořte matici vynásobením těto dvou vektorů



% Vytvořte skalár vynásobením těchto dvou vektorů



%
%% Speciální typy matic - funkce eye, zero, ones, magic

ha=eye(7,7) % eye(řádek,sloupec) - dělá jednotkovou matici
d=zeros(4,5) % zeros(řádek,sloupec) - dělá nulovou matici

w=ones(4,5) % ones(řádek,sloupec) - dělá jedničkovou matici


k=5*ones(7,2)


m=magic(3)%% magický čtverec
sum(m,1) %% sečte řádky
sum(m,2) % sečte sloupce
sum(diag(m)) % sečte prvky na diagonále

%% Použití dvojtečky

t=1:100 % všechny prvky 
t=1:2:30 % každý druhý prvek


z=45:-4:4 % každý čtvrtý prvek pozpátku

%% Výběr prvků z matice

m=[3 4 1; 5 6 7; 3 5 8]


m(3,3) %výběr jednoho prvku m(řádek,sloupec)


m(:,1) %výběr sloupce, např. , tj všechny řádky, první sloupec


m(2,:) %výběr druhého řádku , tj druhý řádek, všechny sloupce

m(3,1:2:end) % třetí řádek a každý druhý sloupec 


m(2:3,1:2:end) % druhý a třetí řádek a každý druhý sloupec
m(3,2)=200*m(3,2) %nahradí prvek jiným číslem

%% Zadání:
% Vytvořte libovolnou matici Mat, která bude o rozměrech 3x3



% Vyberte z této libovolné matice  druhý řádek a novou proměnnou pojmenujte radek_Mat



%% Některé funkce Matlabu
%% size

size(k) % vrací počet řádků a počet sloupců
size(k,1) % vrací počet řádků

size(k,2) % vrací počet sloupců

%% min, max

min(t)

max(t)

%% plot

data=[0.5377    1.8339   -2.2588    0.8622    0.3188   -1.3077   -0.4336    0.3426    3.5784    2.7694   -1.3499]

plot(data,'r-*') % grafy podrobněji na 2.cvičení
%help plot

%% Zadání pro samostatnou práci - Matlab Grader
%
% Pro Grader - účet v Mathworks přes školní účet, se školním emailem
%  Návod od správců IT je zde.
%
%
%
%
%