how to find the number of occurances

1 回表示 (過去 30 日間)
johnson saldanha
johnson saldanha 2018 年 12 月 14 日
編集済み: madhan ravi 2018 年 12 月 14 日
i have a matrix x=[1 1 1 1 2 2 1 1 3 3 ]
i want the output to be x1=[1 2 1 3] and y1=[4 2 2 2]
x1 should have the reduced number from input and x2 should be the number of ocurances
  1 件のコメント
per isakson
per isakson 2018 年 12 月 14 日
Search the File Exchange for run length encoding

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

採用された回答

madhan ravi
madhan ravi 2018 年 12 月 14 日
編集済み: madhan ravi 2018 年 12 月 14 日
x=[1 1 1 1 2 2 1 1 3 3];
idx=logical([diff(x)~=0,1]);
x1=x(idx)
yy=find(idx);
yyy=diff(find(idx));
y1=[yy(1) yyy]
x2=histc(x,unique(x)) % number of occurences
unique_numbers_and_their_occurences=[unique(x); histc(x,unique(x))].' %bonus
Gives:
x1 =
1 2 1 3
y1 =
4 2 2 2
x2 =
6 2 2
unique_numbers_and_their_occurences =
1 6
2 2
3 2
  4 件のコメント
johnson saldanha
johnson saldanha 2018 年 12 月 14 日
why are the number of columns of x1 and y1 not the same
madhan ravi
madhan ravi 2018 年 12 月 14 日
編集済み: madhan ravi 2018 年 12 月 14 日
Try this I corrected the mistake:
x=[1;1;1;1;2;2;1;1;3;3];
idx=logical([diff(x)~=0;1]);
x1=x(idx)
yy=find(idx);
yyy=diff(find(idx));
y1=[yy(1);yyy]
x2=histc(x,unique(x)) % number of occurences
unique_numbers_and_their_occurences=[unique(x) histc(x,unique(x))]
Gives :
>> COMMUNITY
x1 =
1
2
1
3
y1 =
4
2
2
2
x2 =
6
2
2
unique_numbers_and_their_occurences =
1 6
2 2
3 2
>>

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

その他の回答 (0 件)

カテゴリ

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by