MATLAB Answers

Return variables or elements with similar corresponding values

26 views (last 30 days)
Aladdin
Aladdin on 13 Apr 2021 at 21:46
Commented: Adam Danz on 14 Apr 2021 at 14:56
Hi all,
I have an excel sheet with two columns. It's basically a list of big cities in the world and the population of each one of them. I want to extract the cities that have the same population is there any MATLAB function can do that? I searched and can't find the right function. I would really appreciate any help. The file is attached.
Thanks in advance

Accepted Answer

Adam Danz
Adam Danz on 13 Apr 2021 at 23:18
I'm currious what you searched for. Are you looking for a Matlab function that reads in an excel file that has two columns of data and returns the values in column 1 that have matching values in column 2? That would be a really specific function.
Here's the steps you need to take. If you get stuck, show us what you've got and we can help you get unstuck.
  1. Read in the data (see readtable)
  2. Use groupcounts to find exact duplicate population sizes
  3. Use indexing to return the city names that have matches
  4 Comments
Adam Danz
Adam Danz on 14 Apr 2021 at 1:27
No disrespect take. "It didn't work" are among the 3 most common words in many replies in this forum but they usually mean I didn't understand or I couldn't implement the solution 😁.
I assume you figured out the rest of the solution so I'll update my previous comment to fill in the blanks.

Sign in to comment.

More Answers (1)

David Fletcher
David Fletcher on 13 Apr 2021 at 23:56
Edited: David Fletcher on 13 Apr 2021 at 23:57
Essentially you would subtract a square matrix formed from the list of populations copied to form a square matrix and subtract the transpose of the same matrix to give the population of every city subtracted from every other cities' population. You can then search that matrix for zero values (if you want exact population matches), or visualize it.
populations=File{:,2};
popMatrix=repmat(populations,1,86); %Extract population list and copy to form square matrix
comparison=popMatrix-popMatrix'; %subtract transposed matrix to give population of every city subtracted from every other city
comparison=abs(comparison)
heatmap(comparison,'ColorMethod','none','ColorScaling','log') %visualize data
  3 Comments

Sign in to comment.

Tags

Products


Release

R2020b

Community Treasure Hunt

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

Start Hunting!