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

5 vues (au cours des 30 derniers jours)
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 commentaire
João
João le 15 Jan 2023
If any part of the code is necessary for a better understanding of my problem, I can gladly post it here.

Connectez-vous pour commenter.

Réponse acceptée

João
João le 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

Plus de réponses (1)

the cyclist
the cyclist le 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.

Produits


Version

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by