MATLAB: How to get the neighbors points within the specific radius in the rangesearch

distanceknnrangesearch

Hi,
I found few articles discussed about the neighbors points within the specific radius using range search:
I tried with this simple code:
load fisheriris
rng(1); % For reproducibility
n = size(meas,1);
idx = randsample(n,3)
X = meas(~ismember(1:n,idx),3:4); % Training data
Y = meas(idx,3:4)
[idx, dist] = rangesearch(X,Y,1.5)
X(idx,:)
I got this such error:
Function 'subsindex' is not defined for values of class 'cell'.
So, means, i need to apply the cell function(maybe) to get the data points within 1.5 radius of Y.
Can anyone advice me on how to get the datapoints within 1.5 radius of Y?
I'm newbie in distance

Best Answer

cellfun(@(IDX) X(IDX,:), idx, 'uniform', 0)
Each original point has a cell of points that are within range because the number of points within range might be different for each one. So you have to process each cell separately.