www.gusucode.com > matlab 案例源码 matlab代码程序 > matlab/GroupScatteredDataUsingAToleranceExample.m

    %% Group Scattered Data Using a Tolerance
% This example shows how to group scattered data points based on their
% proximity to points of interest. 
%
% Create a set of random 2-D points. Then create and plot a grid of equally
% spaced points on top of the random data.

% Copyright 2015 The MathWorks, Inc.

x = rand(10000,2);
[a,b] = meshgrid(0:0.1:1);
gridPoints = [a(:), b(:)];
plot(x(:,1), x(:,2), '.')
hold on
plot(gridPoints(:,1), gridPoints(:,2), 'xr', 'Markersize', 6)

%%
% Use |ismembertol| to locate the data points in |x| that are within
% tolerance of the grid points in |gridPoints|. Use these options with
% |ismembertol|:
%
% * Specify |ByRows| as |true|, since the point coordinates are in the rows
% of |x|.
% * Specify |OutputAllIndices| as |true| to return all of the indices for
% rows in |x| that are within tolerance of the corresponding row in
% |gridPoints|.
[LIA,LocB] = ismembertol(gridPoints, x, 0.05, ...
    'ByRows', true, 'OutputAllIndices', true);

%%
% For each grid point, plot the points in |x| that are within tolerance of
% that grid point. 
figure
hold on
for k = 1:length(LocB)
    plot(x(LocB{k},1), x(LocB{k},2), '.')
end
plot(gridPoints(:,1), gridPoints(:,2), 'xr', 'Markersize', 6)