Node degree from lat/lon

14 views (last 30 days)
Erick Koenig
Erick Koenig on 28 Sep 2020
Commented: Walter Roberson on 29 Sep 2020
Hello, I'm trying to find the most popular locations from a list of 36000 lat/lon coordinates. I was hoping to use the indegree function and pull the top 10 results, but it doesnt seem to like to work with non-whole numbers such as lat/lon pairs. Is there a way of finding the most commonly occuring pairs from an array? It is currently set up as an x and y coordinate so would sort arrange them by x OR y, but not as a pair.
Thank you for your help.
Erick
  2 Comments
Steven Lord
Steven Lord on 28 Sep 2020
Do you have a digraph connecting the various locations specified by longitude and latitude values? Or do you just have a list of coordinates like:
rng default
xy = randi([1 10], 30, 2);
Erick Koenig
Erick Koenig on 28 Sep 2020
At the moment, it's a list of coordinates like [-74.1624 40.91464 ] in a 36000 X 2 array.

Sign in to comment.

Answers (1)

Walter Roberson
Walter Roberson on 28 Sep 2020
Edited: Walter Roberson on 29 Sep 2020
Is there a way of finding the most commonly occuring pairs from an array?
You do not have a graph, so you cannot use graph() object techniques.
One approach:
[count, ids] = groupcounts(YourMatrix);
NewMatrix = [ids{1}, ids{2}, count];
but... you should probably be using inexact comparisons, which groupcounts and findgroups will not do by default:
[groups, ~, groupnum] = uniquetol(YourMatrix, 'byrows', true);
count = histcounts(groupnum, 1:max(groupnum));
NewMatrix = [groups, count];
  3 Comments
Erick Koenig
Erick Koenig on 28 Sep 2020
I'm getting..
Error using ismembertol
Too many input arguements
Walter Roberson
Walter Roberson on 29 Sep 2020
Sorry, I corrected the code.

Sign in to comment.

Categories

Find more on Graph and Network Algorithms 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!