I need to find a pattern in a column

4 ビュー (過去 30 日間)
quentin bruxelles
quentin bruxelles 2021 年 11 月 8 日
コメント済み: Chris 2021 年 11 月 9 日
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

採用された回答

Chris
Chris 2021 年 11 月 8 日
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 件のコメント
Chris
Chris 2021 年 11 月 9 日
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

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by