Advertisement
Guest User

Untitled

a guest
Jul 25th, 2017
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 1.27 KB | None | 0 0
  1. close all; clear; clc;  
  2. % dimensions
  3. k = 3;      
  4. % number of clusters
  5. dim = 4;    
  6. % dimension of data  
  7. % read dataset from file
  8. file = fopen('data.txt');
  9. data = fscanf(file,'%f');
  10. data = reshape(data,dim,[]);
  11. data = data';
  12. n = size(data,1);
  13. fclose(file);
  14.  
  15. % initialize centroids
  16. rp = randperm(n);
  17. ct = data(rp(1:k),:);
  18. inict = ct;
  19.  
  20. g = zeros(k,n); % cluster data
  21. iter = 0;       % clustering
  22. while true      
  23. % to calculate new clusters    
  24.     ctn = zeros(k,dim);    
  25.     gn = zeros(k,n);  
  26.    
  27.        for i = 1:n    
  28.            % for each data        
  29.            % selecting cluster        
  30.            d = zeros(k,2);
  31.            
  32.             for j = 1:k    
  33.                 % for each centroid            
  34.                 % cluster index            
  35.                 d(j,1) = j;            
  36.                 % distance to centroid            
  37.                 d(j,2) = sqrt( sum( ( ct(j,:)-data(i,:) ).^2 ) );        
  38.             end
  39.              d = sortrows(d,2);  
  40.              % sort by distance        
  41.              c = d(1,1);        
  42.              % selected cluster  
  43.              gn(c,i) = 1;        
  44.              % classify        
  45.              ctn(c,:) = ctn(c,:) + data(i,:);
  46.          end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement