How to calculate the distance between one row vector and a matrix??...
Show older comments
I need to calculate the distance between a one row vector a and a matrix i.e.
test_point = [ 1.2 0.6 3.1 1.3]
train_data = [7.7 2.8 6.7 2.3;
5.2 2.5 3.0 1.1;
2.0 6.5 8.6 9.8;
1.3 2.4 5.2 3.6;
4 3 5 4 2 6 7 6]
I have to find the distance of test_point with every row of train_data.... how can I do that??.. I have tried the MATLAB functions pdist2() and dist() and many other etc but they required two matrices of the same dimension...
plzz tell how to write the function to calculate the distance??...
Answers (2)
Andrei Bobrov
on 14 Dec 2012
Edited: Andrei Bobrov
on 14 Dec 2012
[edit]
a = bsxfun(@minus,train_data,test_point);
out = cellfun(@norm,num2cell(a,2));
5 Comments
sani ars
on 14 Dec 2012
Andrei Bobrov
on 14 Dec 2012
I am corrected.
Teja Muppirala
on 14 Dec 2012
You didn't need to transpose it, this works fine:
out = pdist2(train_data,test_point)
sani ars
on 14 Dec 2012
sani ars
on 14 Dec 2012
Walter Roberson
on 14 Dec 2012
0 votes
Have you considered a "for" loop ?
2 Comments
sani ars
on 14 Dec 2012
Walter Roberson
on 14 Dec 2012
Using one of the library functions to calculate row by row is fine.
Categories
Find more on Descriptive Statistics 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!