Clear Filters
Clear Filters

searching first two consecutive ones and set to 0

2 views (last 30 days)
y=[1 1 1 1 1 1 1 1 1 1 1]
i want to search for first two consecutive ones everytime and allocate them 0
like this
y=[0 0 1 1 1 1 1 1 1 1 1]

Accepted Answer

Arif Hoq
Arif Hoq on 25 Feb 2022
Edited: Arif Hoq on 25 Feb 2022
try this:
y=[1 1 1 1 1 1 1 1 1 1 1];
idx=y(1:2);
b=find(y(idx));
if y(b)==1
y(b)=0;
end
disp(y)
0 0 1 1 1 1 1 1 1 1 1
  3 Comments
Jan
Jan on 25 Feb 2022
This does not work, if y does not start ith two 1 values:
y=[0 0 1 1 1 1 1 1 1 1 1]
y = 1×11
0 0 1 1 1 1 1 1 1 1 1
idx=y(1:2);
b=find(y(idx));
Array indices must be positive integers or logical values.
if y(b)==1
y(b)=0;
end
disp(y)

Sign in to comment.

More Answers (1)

Jan
Jan on 25 Feb 2022
Edited: Jan on 25 Feb 2022
y = [0 0 1 1 1 1 1 1 1 1 1];
index = strfind(y, [1, 1]);
if any(index)
y(index(1):index(1)+1) = 0;
end
y
y = 1×11
0 0 0 0 1 1 1 1 1 1 1
  3 Comments
Jan
Jan on 25 Feb 2022
As fas as I understand, this would be working then:
if all(y(1:2) == 1)

Sign in to comment.

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!