Effacer les filtres
Effacer les filtres

searching first two consecutive ones and set to 0

2 vues (au cours des 30 derniers jours)
VASUNDHARA V
VASUNDHARA V le 25 Fév 2022
Commenté : VASUNDHARA V le 25 Fév 2022
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]

Réponse acceptée

Arif Hoq
Arif Hoq le 25 Fév 2022
Modifié(e) : Arif Hoq le 25 Fév 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 commentaires
Arif Hoq
Arif Hoq le 25 Fév 2022
my pleasure
Jan
Jan le 25 Fév 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)

Connectez-vous pour commenter.

Plus de réponses (1)

Jan
Jan le 25 Fév 2022
Modifié(e) : Jan le 25 Fév 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 commentaires
Jan
Jan le 25 Fév 2022
As fas as I understand, this would be working then:
if all(y(1:2) == 1)
VASUNDHARA V
VASUNDHARA V le 25 Fév 2022
yes sir

Connectez-vous pour commenter.

Catégories

En savoir plus sur Statistics and Machine Learning Toolbox dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by