Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- %task1heiheihei
- function A_k = task1(image, k)
- %TODO
- A = double(imread(image));
- [U, S, V] = svd (A);
- U = U(:,1:k);
- S = S(1:k,1:k);
- V = V(:,1:k);
- V = V';
- A_k = U * S * V;
- end
- %task2heiheihei
- function task2(k,image)
- %TODO
- A = double(imread(image));
- [m n] = size(A);
- [U, S, V] = svd (A);
- x = diag(S);
- s=0;
- sort(x,"descend");
- subplot(2,2,1);
- plot(x)
- for i = 1 : k
- s = s + S(i,i);
- v(i) = s;
- endfor
- s1 = sum(diag(S));
- v = v / s1;
- subplot(2,2,2);
- plot(v)
- for z = 1 : k
- A_k = task1(image, z);
- s2 = 0;
- for i = 1 : m
- for j = 1 : n
- s2 = s2 + (A(i,j) - A_k(i,j))^2;
- endfor
- endfor
- v1(z) = s2;
- endfor
- v1 = v1 / (m*n);
- subplot(2,2,3);
- plot(v1)
- for i = 1 : k
- qq(i) = (m*i + n*i + i)/(m*n);
- endfor
- subplot(2,2,4)
- plot(qq)
- end
- %task3heiheihei
- function [A_k S] = task3(image, k)
- %TODO
- A = double(imread(image));
- [m n] = size(A);
- for j = 1 : m
- u(j) = mean(A(j,:),2);
- A(j,:) = A(j,:) - u(j);
- endfor
- Z = A' / sqrt(n-1);
- [U, S, V] = svd(Z);
- W = V(:,1:k);
- Y = W' * A;
- A_k = W * Y + u';
- endfunction
- %task4heiheihei
- function [A_k S] = task4(image, k)
- %TODO
- A = double(imread(image));
- [m n] = size(A);
- for j = 1 : m
- u(j) = mean(A(j,:),2);
- A(j,:) = A(j,:) - u(j);
- endfor
- Z = 1/(n-1) * A * A';
- [V S] = eig(Z);
- W = V(:,1:k);
- Y = W' * A;
- A_k = W * Y + u';
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement