findClosestCentroids.m
m = size(X,1);
for i=1:m
[value index] = min(sum((repmat(X(i,:),K,1)-centroids).^2,2));
idx(i) = index;
end
computeCentroids.m
temp = [X idx];
// pdf说能向量化实现更高效,本人对matlab实在不熟,勉强实现了下循环的,若有大神,敬请赐教。
for i=1:K
[index_row index_column]= find(temp(:,end) == i);
centroids(i,:) = mean(X(index_row,:));
end
pca.m
sigma = X'*X.*(1/size(X,1));
[U S V] = svd(sigma);
projectData.m
Z = X*U(:,1:K);
recoverData.m
temp = zeros(size(Z,1),size(U,1)-K);
X_rec = [Z temp]*U';
这里关于PCA的练习相对比较简单,UFLDL上面的内容比较多,有兴趣的同学可以在做完UFLDL练习后,到UFLDL学习笔记 ---- 主成分分析与白化比较下,如有理解错误,万望指教,谢谢