Azzera filtri
Azzera filtri

Form a new matrix based on a distance comparison

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Matt J
Matt J il 14 Set 2014
Modificato: Matt J il 14 Set 2014
dist_squared=sum(bsxfun(@minus,A,A(1,:)).^2,2);
idx=(dist_squared<thresh^2);
B=A(idx,:);
A=A(~idx,:);

Più risposte (0)

Categorie

Scopri di più su Statistics and Machine Learning Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by