calculate the (geometrical) distance between points of a matrix
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Lets say I have a large matrix full of zeros, with a few numbers (1,2,3,4,5) located at various positions. Now I want to calculate the distances from point 1 to 2, 1 to 3, 1 to 4 and 1 to 5. Assuming that e.g. the width of the columns in this matrix is 0.4mm and the width of the rows is 0.25mm. Maybe there is already a code/toolbox out there to do such things?
0 commentaires
Réponse acceptée
Andrei Bobrov
le 27 Jan 2012
eg:
data =[0 0 0 0 0 0 0 0 0 0
0 0 0 0 3 0 0 0 0 0
0 1 0 0 0 0 0 0 0 0
0 0 0 2 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 4 0 0 0 0
0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 5 0 0
0 0 0 0 0 0 0 0 0 0]
[i1,j1,c] = find(data)
ijc = sortrows([i1,j1,c],3)
d = bsxfun(@minus,ijc(2:end,1:2),ijc(1,1:2))
out = hypot(d(:,1)*.25,d(:,2)*.4)
OR
use function dist from Neural Network Toolbox
c = dist(bsxfun(@times,ijc(:,1:2),[.25 .4]).');
out = c(:,1);
2 commentaires
Andrei Bobrov
le 27 Jan 2012
out = diag(dist(bsxfun(@times,ij,[.25; .4])),1)
this is 1 to 2 to 3 to 4 to 5.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Point Cloud Processing 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!