Effacer les filtres
Effacer les filtres

I need to find a pattern in a column

1 vue (au cours des 30 derniers jours)
quentin bruxelles
quentin bruxelles le 8 Nov 2021
Commenté : Chris le 9 Nov 2021
Hello,
I need to count the number of repetition of a pattern in my data. The pattern is a serie of 35 zeros. The problem is that I didn`t find how to do it in column cause my data are un one column.
Thank you for your help

Réponse acceptée

Chris
Chris le 8 Nov 2021
A = readmatrix('test.xlsx');
count = 0;
for idx = 1:numel(A)-34
if sum(A(idx:idx+34)) == 0
count = count+1;
end
end
If there is a series of N>35 zeros, this wll count the pattern multiple times (for example, if there are 36 zeros in a row, that's two patterns of 35).
Also, there are probably more efficient ways to do this.
  2 commentaires
quentin bruxelles
quentin bruxelles le 9 Nov 2021
it is possible to not count the same thing multiple times ?
Chris
Chris le 9 Nov 2021
certainly!
Maybe something like this:
A = readmatrix('test.xlsx');
count = 0;
for idx = 1:numel(A)-34
% The previous condition, but also either:
% (we're at the first index OR the previous index isn't also 0)
if (sum(A(idx:idx+34)) == 0 && (idx==1 || A(idx-1) ~= 0))
count = count+1;
end
end

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Language Fundamentals dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by