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

5 visualizzazioni (ultimi 30 giorni)
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

Risposta accettata

João
João il 15 Gen 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

Più risposte (1)

the cyclist
the cyclist il 15 Gen 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.

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by