I have a list of lat/lon coordinates and I would like to find the most common locations. Is there a built in function for this?
Thank you.

 Réponse acceptée

Star Strider
Star Strider le 4 Nov 2020

0 votes

Try this:
M = randi(5, 25, 2); % Create ‘LatLon’ Data
[Mu,~,idx] = unique(M, 'rows'); % Unique Rows
Tally = accumarray(idx, (1:numel(idx)).', [], @(x) {M(x,:)}); % Calculate Frequencies, Return Pairs By Group
pairs = cellfun(@(x)size(x,1), Tally); % Recover ‘LatLon’ Pairs
[~,ixs] = sort(pairs, 'descend'); % Sort Them
Result = table(Mu(ixs,:),pairs(ixs), 'VariableNames',{'LatLon','Frequency'}); % Output Table Of Pairs & Frequencies
I did my best to comment-document it. Use your own latitude & longitude coordinates for ‘M’. It may be necessary to use uniquetol with the 'ByRows' option if the coordinates are not exactly the same.

2 commentaires

Erick Koenig
Erick Koenig le 4 Nov 2020
Awesome! works perfectly. That's exactly what I was looking to do. Thank you.
Star Strider
Star Strider le 4 Nov 2020
Thank you! As always, my pleasure!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by