Node degree from lat/lon

4 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.

Community Treasure Hunt

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

Start Hunting!