Suppose I have a =( 1 ,2; 3, 4;5,6); 3 X 2 matrix
x =( 1,10); 2 X 1 matrix
bsx_out = bsxfun(@minus,a,x); % i have done row wise subtraction.
I want to find the euclidean distance as a 3 X 1 column vector
so for first row it will be sqrt( (1-1)^2 + (2-10)^2)

 採用された回答

Andrei Bobrov
Andrei Bobrov 2012 年 5 月 26 日

1 投票

a =[ 1 ,2; 3, 4;5,6]
x =[1,10]'
out = sqrt(sum(bsxfun(@minus,a,x.').^2,2))

その他の回答 (1 件)

Oleg Komarov
Oleg Komarov 2012 年 5 月 26 日

0 投票

An alternative:
out = hypot(a(:,1)-x(1),a(:,2)-x(2))

Community Treasure Hunt

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

Start Hunting!

Translated by