Subtraction matrixes with different dimensions

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.

 Accepted Answer

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

More Answers (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.
Without the Statistics Toolbox and Matlab >= 2016b:
D = sqrt(((Al(:,1) - C(:,1).') .^ 2) + ...
((Al(:,2) - C(:,2).') .^ 2) + ...
((Al(:,3) - C(:,3).') .^ 2));

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!