Clear Filters
Clear Filters

How to use a function for multiple sets of numbers with a single command?

2 views (last 30 days)
For instance, I created a function to calculate the distance between 2 points with X,Y coordinates with this formula:
D=sqrt((X1-X2)^2+(Y1-Y2)^2)
Point nb. X Y
and I have this matrix: A = 1 2800 3500
2 4200 5300
3 5100 6200
- - -
- - -
n x y
The dimension of matrix A is ,,n" rows and 2 columns
Now, how I can apply this function to calculate distances between points 1&2, 2&3, 3&4 and so on, with a single command?Is it possible?
*Note: English is not my first language, and I may have not been very explicit

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 3 Apr 2013
Edited: Andrei Bobrov on 3 Apr 2013
k = diff(A);
D = hypot(k(:,1),k(:,2)); % I am corrected after Sean's comment.
On Ciuban's comment.
Try used function pdist from Statistics Toolbox:
A = [2800 3500
4200 5300
5100 6200];
D = pdist(A);
  4 Comments
Mahdi
Mahdi on 3 Apr 2013
Look at my answer and where ever you see A(2:end) and A(1:end) changes how far you want to go.
For example, if you want 1&4 and 2&4, you would use A(4:end) and A(2:end-4) respectively. Try to explore the colon operator and see what it does. For example, try the following
A=[1 2 3; 4 5 6; 7 8 9];
A(1:2:end, 1)
A(1:3:end)
A(1, 1:2:end)
A(1:3,1)
Matt Kindig
Matt Kindig on 3 Apr 2013
Ciuban, if you want every combination, it sounds like you want to calculate the inter-point distance matrix. This can get very memory-intensive if done poorly/naively, so I'd recommend using one of the File Exchange solutions for this. I'd recommend:
href = ""<http://www.mathworks.com/matlabcentral/fileexchange/18937-ipdm-inter-point-distance-matrix</a>>

Sign in to comment.

More Answers (1)

Mahdi
Mahdi on 3 Apr 2013
Edited: Mahdi on 3 Apr 2013
D=sqrt((A(2:end,2)-A(1:end-1,2)).^2+(A(2:end,3)-A(1:end-1,3)).^2)
  5 Comments
Matt Kindig
Matt Kindig on 3 Apr 2013
Then you can just modify Mahdi's code as:
D=sqrt((A(2:end,2)-A(1:end-1,2)).^2+(A(2:end,1)-A(1:end-1,1)).^2)

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!