Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- close all; clear; clc;
- % dimensions
- k = 3;
- % number of clusters
- dim = 4;
- % dimension of data
- % read dataset from file
- file = fopen('data.txt');
- data = fscanf(file,'%f');
- data = reshape(data,dim,[]);
- data = data';
- n = size(data,1);
- fclose(file);
- % initialize centroids
- rp = randperm(n);
- ct = data(rp(1:k),:);
- inict = ct;
- g = zeros(k,n); % cluster data
- iter = 0; % clustering
- while true
- % to calculate new clusters
- ctn = zeros(k,dim);
- gn = zeros(k,n);
- for i = 1:n
- % for each data
- % selecting cluster
- d = zeros(k,2);
- for j = 1:k
- % for each centroid
- % cluster index
- d(j,1) = j;
- % distance to centroid
- d(j,2) = sqrt( sum( ( ct(j,:)-data(i,:) ).^2 ) );
- end
- d = sortrows(d,2);
- % sort by distance
- c = d(1,1);
- % selected cluster
- gn(c,i) = 1;
- % classify
- ctn(c,:) = ctn(c,:) + data(i,:);
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement