count the values based on ID and create a new matrix
Afficher commentaires plus anciens
Input:
LAT LON VALUE
12.4 91.4 4
31.4 45.6 1
45.9 91.5 2
18.4 96.4 3
11.4 75.6 2
25.9 51.5 4
12.4 91.4 4
31.4 45.6 2
45.9 91.5 2
As you can see some of the lat lon's are repeated with different values, so I want to know for a lat lon, how many times (count) a values is observed. I have a input matrix of (90,000, 3)
LAT LON cnt = 1 cnt=2 cnt=3 cnt =4
12.4 91.4 0 0 1 2
31.4 45.6 1 1 0 0
45.9 91.5 0 1 2 0
18.4 96.4 0 0 1 0
11.4 75.6 0 1 0 0
25.9 51.5 0 0 0 1
I tried table, I could not figure out.
9 commentaires
KALYAN ACHARJYA
le 10 Fév 2019
sample={'LAT' 'LON' 'cnt=1' 'cnt=2' 'cnt=3' 'cnt=4';12.4 91.4 1 0 3 0;31.4 45.6 2 4 0 9;45.9 91.5 10 0 9 20}
sample =
'LAT' 'LON' 'cnt=1' 'cnt=2' 'cnt=3' 'cnt=4'
[12.4000] [91.4000] [ 1] [ 0] [ 3] [ 0]
[31.4000] [45.6000] [ 2] [ 4] [ 0] [ 9]
[45.9000] [91.5000] [ 10] [ 0] [ 9] [ 20]
nlm
le 10 Fév 2019
madhan ravi
le 10 Fév 2019
Give an example of your desired output explicitly.
nlm
le 10 Fév 2019
nlm
le 10 Fév 2019
madhan ravi
le 10 Fév 2019
Which version of matlab are you using?
nlm
le 10 Fév 2019
madhan ravi
le 10 Fév 2019
Well good then :
t=[12.4 91.4 4
31.4 45.6 1
45.9 91.5 2
18.4 96.4 3
11.4 75.6 2
25.9 51.5 4
12.4 91.4 4
31.4 45.6 2
45.9 91.5 2];
T=array2table(t,'VariableNames',{'LAT','LON','COUNT'})
groupsummary(T,{'LAT','LON','COUNT'}) % gives almost your result but in more compact way
nlm
le 10 Fév 2019
Réponses (1)
Image Analyst
le 10 Fév 2019
1 vote
Use unique() to get unique rows. Then for each unique row (lat,lon combination), call histogram.
3 commentaires
nlm
le 10 Fév 2019
Modifié(e) : Image Analyst
le 10 Fév 2019
Image Analyst
le 10 Fév 2019
Hist is an object. Look at it's properties and methods and you'll know what to do. Take the semicolon off of that line to see the properties.
Catégories
En savoir plus sur Pulsed Waveforms dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!