2 views (last 30 days)

Hello,

There is an array A size (NxM), each column represents when a signal was created. I need to close that signal if certain time it was not created again and assign -1 value. For example like this:

1 0 1 0 1

0 1 0 1 0

0 0 1 0 0

1 0 0 1 1

0 0 1 1 0

0 1 0 0 0

I need to count consecutive occurrences of zero column-vise, and if zero occurred for defined number of times for example two, it should be changed to -1 and output should look like this:

1 0 1 0 1

0 1 0 1 0

-1 0 1 0 -1

1 -1 0 1 1

0 0 1 1 0

-1 1 0 0 -1

Count conservative occurrences of zeros and if zero appeared for defined number of times it should be changed.

Jan
on 8 Jul 2018

Edited: Jan
on 8 Jul 2018

If you want to replace the 2nd element after a 1 by -1, if it was a 0 before:

A = double(rand(10, 5) < 0.3); % Some test data

n = 2;

pattern = [1, zeros(1, n)];

for k = 1:size(A, 2)

index = strfind(A(:, k).', pattern);

A(index + n, k) = -1;

end

Jan
on 9 Jul 2018

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

Start Hunting!
## 1 Comment

## Direct link to this comment

https://es.mathworks.com/matlabcentral/answers/409297-count-conservative-occurrences-of-zeros-and-if-zero-appeared-for-defined-number-of-times-it-should-b#comment_586944

⋮## Direct link to this comment

https://es.mathworks.com/matlabcentral/answers/409297-count-conservative-occurrences-of-zeros-and-if-zero-appeared-for-defined-number-of-times-it-should-b#comment_586944

Sign in to comment.