How to apply the nearest neighbor using rangesearch function for different range/scale of X and Y data

3 views (last 30 days)
Hi, I would like to find the nearest neighbors data using the rangesearch function specifically euclidean distance for the data that has different range/ scale data in X and Y.
For instance, the range for X is between 1.5 and 5.5, while Y has range between 40 and 100.
This is my data:
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 ]
If i apply the max/min or zscore normalization funcion and apply the normalized data in the rangesearch function, how i'm going to get back my original data and plot in a graph I would appreciate if anyone can give some ideas
If i do not concern about the range, i will get inaccurate nearest data points.

Accepted Answer

Walter Roberson
Walter Roberson on 18 Mar 2018
rangesearch returns indices. You can use them to index the original data.
  4 Comments
Walter Roberson
Walter Roberson on 18 Mar 2018
When you do
plot(X([idrx1{j}],1),X([idrx1{j}],2),'*b','MarkerSize',5,'MarkerFaceColor','b','DisplayName','Imputed Data');
it is not obvious to me why the second argument is X rather than Y ?

Sign in to comment.

More Answers (0)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!