Skip to content

Instantly share code, notes, and snippets.

@kmader
Last active August 29, 2015 13:58
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kmader/9934699 to your computer and use it in GitHub Desktop.
Save kmader/9934699 to your computer and use it in GitHub Desktop.
Read in text file, plot, calculate nearest neighbors, and classify based on distance
spacinglay=importdata('spacing_layer_grid.csv',',',1);
disp(spacinglay.colheaders)
%% parse the data in matlab
% A tiny piece of code to find which column the given header is in
findColumn=@(idstrut,colName) find(not(cellfun('isempty',strfind(idstrut.colheaders,['"' colName '"']))));
% a function to return all of the data in that column
getColumn=@(idstrut,colName) idstrut.data(:,findColumn(idstrut,colName));
%% calculate the nearest neighbor distance and angle
[nndist,nnangle]=findnn(getColumn(spacinglay,'x'),getColumn(spacinglay,'y'));
%% show the data
figure(1)
subplot(1,2,1);
plot(getColumn(spacinglay,'x'),getColumn(spacinglay,'y'),'r.')
title('Point Location')
subplot(1,2,2);
hist(nndist)
pause(0.5)
%% make two groups based on volume
groupId=kmeans(nndist',2,'EmptyAction','singleton')
% show the groups as different colors
xdata=getColumn(spacinglay,'x');
ydata=getColumn(spacinglay,'y');
figure(2)
plot(xdata(groupId==1),ydata(groupId==1),'r.')
hold on;
plot(xdata(groupId==2),ydata(groupId==2),'bo')
legend({'Group 1','Group 2'});
hold off;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment