Counting sequences for a non-parametric statistical test (sequence test or RUN test).

3 views (last 30 days)
I have a certain sequence of events, for example:
x=['F','Q','Q','F','F','F','F','Q','Q','F','F','Q','F','F','Q',]
I want to count how many different sequences are in the data. For example, the first 'F' is 1 sequence, the two 'Q' following is the 2nd sequence, the next four 'F' is the 3rd sequence, the next two 'Q' is the 4rd sequence, and so on... I did this:
r=0;
for i=2:length(x)
if x(i)~=x(1)
r=r+1;
end
I don't know if I comited some error elsewhere in the code, but by my analysis it's all correct. I'm just not sure if this is the best method to count sequences, because with bigger samples of data (like 100+ sequences) the "r" is always wrong. If anyone has any suggestions I would be much appreciated
  1 Comment
João
João on 15 Jan 2023
If any part of the code is necessary for a better understanding of my problem, I can gladly post it here.

Sign in to comment.

Accepted Answer

João
João on 15 Jan 2023
I eventually found the answer, gonna leave it here in case someone needs it aswell.
x=['F','Q','Q','F','F','F','F','Q','Q','F','F','Q','F','F','Q',]
r=1;
for i=2:length(x)
if x(i)~=x(i-1)
r=r+1;
end
end

More Answers (1)

the cyclist
the cyclist on 15 Jan 2023
I see you found and accepted a solution. An alternative would have been to download the versatile RunLength utility from the File Exchange. Then
[~, n] = RunLength(x);
numel(n)
would give the answer you needed.

Community Treasure Hunt

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

Start Hunting!