MATLAB Answers

Distance of Latlon based locations in an array

19 views (last 30 days)
Hi,
I have a matrix. 1st column have latt and second with lon. Now, how do i calculate the distances between each other?
35.3333 25.10555
35.33361111 25.07666
35.3316 25.157
35.33861 25.1325
35.3375 25.136
35.335 25.134166
I have tried distance function, it works between two points. Soon try to select it from the array, it shows errors.
I tired: [arclen,az] = distance(Locations (1,:), Locations (2,:)), Locations is the name of my matrix.
The erros message:
Undefined function 'real' for input arguments of type 'table'.
Error in parseDistAzInputs (line 104)
lat1 = real(lat1);
Error in distance (line 95)
units, insize, useAngularDistance] = parseDistAzInputs(varargin{:});
Can you please help me to write the code to find distance between each other fo these points?

Accepted Answer

Martin Vatshelle
Martin Vatshelle on 20 Mar 2019
Edited: Martin Vatshelle on 20 Mar 2019
You should not use normal distance for lat-lon points. The reason is that for latitude 1 degree is approximately the same distance (around 110 km). While 1 degree of longitude is different depending on how far north you are.
There are many functions out there, e.g.
Then you need to loop over all pairs somehow, and call this function
Below is a sample code
% make points as cell array
points = {[35.3333 25.10555];
[35.33361111 25.07666];
[35.3316 25.157];
[35.33861 25.1325];
[35.3375 25.136];
[35.335 25.134166]};
% generate all pairs
pairs = nchoosek(1:length(lat),2);
p1 = points(pairs(:,1),:);
p2 = points(pairs(:,2),:);
% compute distance
dist = cellfun(@lldistkm,p1,p2);

More Answers (0)

Tags

Community Treasure Hunt

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

Start Hunting!