counting how many times a certain value is repeated in a fixed interval

Hi,
I need a help for a relatively simple calculation, but I keep failing to solve it.
Say I have the following data, where keeping the order is necessary:
X = [0,0,1,1,0,1,1,1,1,1,0,0]
and I want to know how many times '1' is repeated for 2x, and that two '1's is considered as 1 score. So score for X should be 3.
I have a relatively long data (1x74240) with 0, 1, and -1.
With the logic above, I need to know the score for when the data shows repeated 1 and repeated -1.
Any sort of input is appriciated.
Thanks

댓글 수: 2

Is the score 3 because of the following three 1s?
X = [0,0,1,1,0,1,1,1,1,1,0,0]
% ^ ^ ^
% 1 +1 +1 = 3
Would this have a score of 4?
X = [0,0,1,1,0,1,1,1,1,1,1,0]
% ^ ^ ^ ^
% 1 +1 +1 +1 = 4
And this a score of 2?
X = [0,0,1,1,0,1,1,1,0,1,0,0]
% ^ ^
% 1 +1 = 2
no it does not work as pair.. I just happened to randomly assigned two-times 1's as my criteria for an example.
X = [0,0,1,1,0,1,1,1,1,1,0,0]
% ^1 ^1 ^1 ^this 1 no longer counts as 0 comes after that..

댓글을 달려면 로그인하십시오.

답변 (4개)

Matt J
Matt J 2020년 6월 28일
편집: Matt J 2020년 6월 28일
If you have the Image Processing Toolbox,
reg=regionprops(X,'Area');
score = sum(structfun(@(a) floor(a/2), reg))
Multiple Ways: One way
X=[0,0,1,1,0,1,1,1,1,1,0,0];
idx=find(X==1)
for i=1:2:length(idx)-1
data(i)=idx(i+1)-idx(i)
end
score=sum(data)
madhan ravi
madhan ravi 2020년 6월 28일
편집: madhan ravi 2020년 6월 28일
According to your comment
No toolboxes/loops needed:
z = (X(1:2:end)==1) + (X(2:2:end)==1) % works for even number of elements only!
score = nnz(z==2) % works only for 2 repetitions!

댓글 수: 1

This works, but yes only when the criteria is two 1's as you said, for 2 repetitions.

댓글을 달려면 로그인하십시오.

Finda Putri
Finda Putri 2020년 6월 29일

0 개 추천

I found a way to answer this already, but in rather long code. Thank you very much for helping me.

카테고리

도움말 센터File Exchange에서 Matrix Indexing에 대해 자세히 알아보기

질문:

2020년 6월 27일

답변:

2020년 6월 29일

Community Treasure Hunt

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

Start Hunting!

Translated by