%% Uvod do Matlabu 2
% (Jednotlive prikazy spustime F10, celou sekci Ctrl+Enter, vsechno F5)
%% Operace s maticemi

A=[2 0 1 4; 1 1 4 -2]
A1=[1,-1,2,-3; 3,0,4,5]
u=[1 2 3 4]
O=ones(3)
A+A1,A-A1   % scitani a odcitani matic
A+4         % pricteni konstanty
3*A         % nasobeni matice cislem
B=A'        % transpozice
A*B,B*A     % nasobeni matic, dva prikazy na jednom radku
% A*A1 % tohle nejde kvuli spatnym rozmerum, zkuste v prikazovem radku
A.*A1       % nasobeni po slozkach
u*B         % nasobeni vektoru a matice
O^2         % totez jako O*O
O.^2        % totez jako O.*O
A.^4        % umocneni kazde slozky

%
%% Logicke operace

A,A1        % definovane matice
A==4        % porovnani s konstantou
A==A1       % porovnani dvou matic (na rovnost prvku)
A<=A1
(A==4)|(A<=A1) % konjukce (or)
(A==4)&(A<=A1) % disjunkce (and)
~A          % negace
~A==4
~(A==4)     % zavorky jsou dulezite
find(A==4)  % nalezeni prvku s danou vlastnosti,
            % indexy se berou postupne po sloupcich
[i1,i2]=find(A==4) % i1 - radkove indexy, i2 - sloupcove indexy

%
%% Maticove deleni

A=[1 2 0; -1 3 1; 4 2 -1]
IA=inv(A)   % matice A je regularni
B=[3 5 1; 1 -1 4; 2 0 1]
B./A        % deleni po jednotlivych prvcich, pri deleni nulou dostaneme inf
A.\B        % stejny vysledek jako u predch. prikazu
B/A         % reseni rovnice X*A=B
B*inv(A)    % stejny vysledek
A\B         % reseni rovnice A*X=B
inv(A)*B    % stejny vysledek
A1           % funguje to i pro obdelnikove matice,
A1\[1 1;2 3] % ale inverzi tady uz nelze pouzit

%
%% Dalsi maticove operace

A
diag(A)     % vytahneme hlavni diagonalu
diag(A,1)   % nebo se posuneme nahoru ci dolu
diag(A,-1)
u
diag(u)     % diagonalni matice z vektoru
diag(diag(A))
tril(A)     % dolni trojuhelnikova submatice
triu(A)     % horni trojuhelnikova submatice
tril(A,-1)  % dolni trojuhelnikova submatice s posunem
max(A),min(A)   % operace pracuji po sloupcich
max(max(A))     % maximalni prvek matice
sum(A),prod(A)  % operace take pracuji po sloupcich
sum(sum(A))     % soucet vsech prvku matice

%
%% Zaokrouhlovani

x=-1:0.25:1
round(x)    % klasicke zaokrouhleni
floor(x)    % zaokrouhleni dolu
ceil(x)     % zaokrouhleni nahoru
fix(x)      % zaokrouhleni k nule

%
% Nektere konstanty

format long
pi      % Ludolfovo cislo
eps     % nejmensi cislo, pro ktere numericky 1+x>1
1+eps
1+eps/2
realmax % maximalni realne cislo
realmin % minimalni nenulove normalizovane realne cislo
1/0     % nekonecno
-1/0    % -nekonecno
0/0     % neurcity vyraz (Not a Number)