필터 지우기
필터 지우기

How to count no. of time state occur in sequence and then divide by sequence no.?

조회 수: 1 (최근 30일)
Ram k
Ram k 2016년 5월 7일
댓글: Ram k 2016년 5월 7일
Suppose I have a sequence 1,3,3,1,2,1,4,2,3,1,4,2,4,4,4,3,1,2,5,1 I have to count no. of times each state occur and then divide by sequence length and then take product, here 1 occur 6 times, 2 for 4, 3 for 4, 4 for 5 and 5 for 1 times occurring and sequence length is 20, so my final answer should be (6/20)*(4/20)*(4/20)*(5/20)*(1/20)=0.00014.

답변 (3개)

Stephen23
Stephen23 2016년 5월 7일
편집: Stephen23 2016년 5월 7일
>> V = [1,3,3,1,2,1,4,2,3,1,4,2,4,4,4,3,1,2,5,1];
>> [~,~,idx] = unique(V);
>> prod(hist(idx,1:max(idx))/numel(V))
ans =
0.00015
Note:
>> (6/20)*(4/20)*(4/20)*(5/20)*(1/20)
ans =
0.00015

Andrei Bobrov
Andrei Bobrov 2016년 5월 7일
a =[1,3,3,1,2,1,4,2,3,1,4,2,4,4,4,3,1,2,5,1];
[a1,~,c] = unique(a);
out = prod(accumarray(c,1)/numel(a));

Azzi Abdelmalek
Azzi Abdelmalek 2016년 5월 7일
편집: Azzi Abdelmalek 2016년 5월 7일
v=[1,3,3,1,2,1,4,2,3,1,4,2,4,4,4,3,1,2,5,1]
out=prod(nonzeros(accumarray(v',1))/20)

카테고리

Help CenterFile Exchange에서 Markov Chain Models에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by