count the values based on ID and create a new matrix

1 回表示 (過去 30 日間)
nlm
nlm 2019 年 2 月 10 日
コメント済み: nlm 2019 年 2 月 10 日
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 件のコメント
madhan ravi
madhan ravi 2019 年 2 月 10 日
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
nlm 2019 年 2 月 10 日
I have already tried it, as mentioned earlier. It does not give me the form that I'm looking for. I need it like this
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

サインインしてコメントする。

回答 (1 件)

Image Analyst
Image Analyst 2019 年 2 月 10 日
Use unique() to get unique rows. Then for each unique row (lat,lon combination), call histogram.
  3 件のコメント
Image Analyst
Image Analyst 2019 年 2 月 10 日
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.
nlm
nlm 2019 年 2 月 10 日
編集済み: nlm 2019 年 2 月 10 日
I did, doesn't help.
Error in matlab.graphics.chart.primitive.Histogram/get.BinCounts

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeNaNs についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by