Effacer les filtres
Effacer les filtres

Form a new matrix based on a distance comparison

1 vue (au cours des 30 derniers jours)
pavlos
pavlos le 14 Sep 2014
Modifié(e) : Matt J le 14 Sep 2014
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

Réponse acceptée

Matt J
Matt J le 14 Sep 2014
Modifié(e) : Matt J le 14 Sep 2014
dist_squared=sum(bsxfun(@minus,A,A(1,:)).^2,2);
idx=(dist_squared<thresh^2);
B=A(idx,:);
A=A(~idx,:);

Plus de réponses (0)

Catégories

En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by