You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
|
|
|
function Z = projectData(X, U, K)
|
|
|
|
%PROJECTDATA Computes the reduced data representation when projecting only
|
|
|
|
%on to the top k eigenvectors
|
|
|
|
% Z = projectData(X, U, K) computes the projection of
|
|
|
|
% the normalized inputs X into the reduced dimensional space spanned by
|
|
|
|
% the first K columns of U. It returns the projected examples in Z.
|
|
|
|
%
|
|
|
|
|
|
|
|
% You need to return the following variables correctly.
|
|
|
|
Z = zeros(size(X, 1), K);
|
|
|
|
|
|
|
|
% ====================== YOUR CODE HERE ======================
|
|
|
|
% Instructions: Compute the projection of the data using only the top K
|
|
|
|
% eigenvectors in U (first K columns).
|
|
|
|
% For the i-th example X(i,:), the projection on to the k-th
|
|
|
|
% eigenvector is given as follows:
|
|
|
|
% x = X(i, :)';
|
|
|
|
% projection_k = x' * U(:, k);
|
|
|
|
%
|
|
|
|
|
|
|
|
U_reduce = U(:, 1:K);
|
|
|
|
|
|
|
|
m = size(X, 1);
|
|
|
|
n = size(X, 2);
|
|
|
|
for i = 1:m
|
|
|
|
x = X(i, :)';
|
|
|
|
z = x' * U_reduce;
|
|
|
|
|
|
|
|
Z(i, :) = z;
|
|
|
|
end
|
|
|
|
|
|
|
|
assert(size(Z) == [m K]);
|
|
|
|
|
|
|
|
% =============================================================
|
|
|
|
|
|
|
|
end
|