I have 2 massives C<32768x3> Al<20000x3> in which columns are (x,y,z). I need to find out all distances between C and Al. I try:
sqrt(((Al(:,1)-C(:,1))^2)+((Al(:,2)-C(:,2))^2)+((Al(:,3)-C(:,3))^2))
But I got error:
??? Error using ==> minus
Matrix dimensions must agree.

 Réponse acceptée

dpb
dpb le 6 Avr 2017
D = pdist2(X,Y);
See
doc pdist2 % note size of result will be length(X)*length(Y)

Plus de réponses (3)

distances = pdist2(C, Al);
pdist2 is in the Statistics and Machine Learning Toolbox. It gives the distance of every point in C to every point in Al.
Jan
Jan le 6 Avr 2017
Without the Statistics Toolbox and Matlab >= 2016b:
D = sqrt(((Al(:,1) - C(:,1).') .^ 2) + ...
((Al(:,2) - C(:,2).') .^ 2) + ...
((Al(:,3) - C(:,3).') .^ 2));

Catégories

En savoir plus sur Statistics and Machine Learning Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by