Form a new matrix based on a distance comparison

Hello,
Please help me the following:
Consider a threshold value, "thres=0.5" an a 100x10 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

 채택된 답변

Matt J
Matt J 2014년 9월 14일
편집: Matt J 2014년 9월 14일

0 개 추천

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

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Get Started with Statistics and Machine Learning Toolbox에 대해 자세히 알아보기

질문:

2014년 9월 14일

편집:

2014년 9월 14일

Community Treasure Hunt

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

Start Hunting!

Translated by