MATLAB: Form a new matrix based on a distance comparison

MATLABmatrixmatrix manipulationStatistics and Machine Learning Toolbox

Hello,
Please help me the following:
Consider a threshold value, "thres=0.5" an a 100×10 matrix
A=rand(100,10);
Take the first row of the matrix,
row1=A(1,:);
and
compute the distances between all the remaining rows of A with row1, lets say with "pdist2".
We take those rows of A with
distance < thres
and create a new matrix B that
includes the respective rows together with row1.
All the other rows with
distance > thres
remain in A.
If there are no
distance < thres
matrix A remains the same.
How the following process is done in Matlab;
Thank you.
Best,
Pavlos

Best Answer

dist_squared=sum(bsxfun(@minus,A,A(1,:)).^2,2);
idx=(dist_squared<thresh^2);
B=A(idx,:);
A=A(~idx,:);