Calculating Average Duration/Length in an Array
2 ビュー (過去 30 日間)
古いコメントを表示
Hello,
I have an array that contains 1 2 3 which each represents a state i.e) 1=sunny day 2=rainy day 3=cloudy day. The array is about 1 million length.
Example: [3 3 3 1 1 1 1 2 1 1 2 3 3]
I would like to figure out the average duration of each state. For state 1, it would be (4+2/2)= 3 days. For state 2, it would be (1+1/2=)1day. And state 3 it would be (3+2/2)=2.5days
I'm wondering if anyone has any suggestion or tips on how to do this with minimal code.
Cheers, David
0 件のコメント
採用された回答
Star Strider
2014 年 12 月 12 日
The histc function (with help from unique) is probably the easiest option:
W = [3 3 3 1 1 1 1 2 1 1 2 3 3];
bins = unique(W);
k = histc(W,bins);
avg = k./2;
2 件のコメント
Star Strider
2014 年 12 月 12 日
My pleasure!
I thought you might want to find out the number of repeated sequences next, but I opted to wait and find out. I’m glad you found an applicable solution to the repeated-sequence problem.
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!