How to access the data point that has maximum distance using rangesearch()
Show older comments
Hi,
I would like to retrieve the data point which has maximum distance from the middle points. This is my code:
fData = [ 3.6 79; 1.8 54; 3.333 74 ;2.283 62; 4.533 85; 2.883 55; 4.7 88 ;3.6 85 ;1.95 51 ;4.35 85 ;1.833 54; 3.917 84; 4.2 78; 1.75 47; 4.7 83; 2.167 52; 1.75 62; 4.8 84; 1.6 52; 4.25 79; 1.8 51; 1.75 47; 3.45 78; 3.067 69; 4.533 74; 3.6 83; 1.967 55; 4.083 76; 3.85 78; 4.433 79; 4.3 73; 4.467 77; 3.367 66; 4.033 80; 3.833 74; 2.017 52; 1.867 48; 4.833 80; 1.833 59; 4.783 90 ];
[n,dim]=size(fData);
r = 0.5;
[zData, mean_array, sd_array] = zscore_rescale(fData);
idx = randsample(n,2);
X = zData(~ismember(1:n,idx),:); % Training data
Y = zData(idx,:) ;
figure('Name','Result');
plot(zData(:,1),zData(:,2),'.k');
hold on;
plot(Y(:,1),Y(:,2),'*r');
[idrx1, dist1] = rangesearch(X,Y,r,'Distance','euclidean');
for j = 1:length(Y)
for dn =1:length(idrx1{j})
if ~isempty(idrx1{j})
plot(X([idrx1{j}],1),X([idrx1{j}],2),'*b','MarkerSize',5,'MarkerFaceColor','b','DisplayName','Imputed Data');
end
end
end
for j = 1:length(Y)
c = Y(j,:);
pos = [c-r (2*r) (2*r)];
rectangle('Position',pos,'Curvature',[1 1])
end
axis square
I would appreciate if anyone could advice on how to access the data point
Accepted Answer
More Answers (0)
Categories
Find more on Nearest Neighbors in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!