%% Singulární rozklad - použití na ztrátovou kompresi dat
% A=USV^*. Z matic U a V použijeme prvních k sloupců, z matice S prvních k sloupců a řádků.
% Matice A_k = U_kS_kV_k^* je aproximací matice A.
% Příklad použití: komprese obrázku

A=imread('budova-gray.jpg');
image(A)
colormap('gray')
A(1:10,1:10)
[U,S,V]=svd(A);

%
% Transformace na datový typ double

A1=double(A);
[U,S,V]=svd(A1);

%
% Graf singulárních čísel

plot(diag(S))

%
% Úkol: určete kolik singulárních čísel použijeme, vytvořte matice U_k,\ V_k,\ S_k a A_k a pak zobrazte komprimovaný obrázek. Jaký ke kompresní poměr?