Distance of Latlon based locations in an array
7 views (last 30 days)
Show older comments
Rakibul Islam Rony
on 20 Mar 2019
Commented: darova
on 3 May 2019
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
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)
See Also
Categories
Find more on Resizing and Reshaping Matrices 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!