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

3 views (last 30 days)
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 Comments
Tommy
Tommy on 27 Jun 2020
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
Finda Putri
Finda Putri on 27 Jun 2020
Edited: madhan ravi on 28 Jun 2020
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..

Sign in to comment.

Answers (4)

Matt J
Matt J on 28 Jun 2020
Edited: Matt J on 28 Jun 2020
If you have the Image Processing Toolbox,
reg=regionprops(X,'Area');
score = sum(structfun(@(a) floor(a/2), reg))

KALYAN ACHARJYA
KALYAN ACHARJYA on 28 Jun 2020
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 on 28 Jun 2020
Edited: madhan ravi on 28 Jun 2020
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!

Finda Putri
Finda Putri on 29 Jun 2020
I found a way to answer this already, but in rather long code. Thank you very much for helping me.

Categories

Find more on Multidimensional Arrays in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!