diff --git a/ex7/ex7.m b/ex7/ex7.m index 3a095ae..f5a36be 100644 --- a/ex7/ex7.m +++ b/ex7/ex7.m @@ -86,6 +86,7 @@ max_iters = 10; % settings them to be random examples (as can be seen in % kMeansInitCentroids). initial_centroids = [3 3; 6 2; 8 5]; +%initial_centroids = kMeansInitCentroids(X, K); % Run K-Means algorithm. The 'true' at the end tells our function to plot % the progress of K-Means diff --git a/ex7/kMeansInitCentroids.m b/ex7/kMeansInitCentroids.m index 7a6d252..565abe6 100644 --- a/ex7/kMeansInitCentroids.m +++ b/ex7/kMeansInitCentroids.m @@ -1,5 +1,5 @@ function centroids = kMeansInitCentroids(X, K) -%KMEANSINITCENTROIDS This function initializes K centroids that are to be +%KMEANSINITCENTROIDS This function initializes K centroids that are to be %used in K-Means on the dataset X % centroids = KMEANSINITCENTROIDS(X, K) returns K initial centroids to be % used with the K-Means on the dataset X @@ -13,12 +13,10 @@ centroids = zeros(K, size(X, 2)); % the dataset X % - - - - - - +% Randomly reorder the indices of examples +randidx = randperm(size(X, 1)); +% Take the first K examples as centroids +centroids = X(randidx(1:K), :); % =============================================================