Effacer les filtres
Effacer les filtres

Find a block of ones in a vector

2 vues (au cours des 30 derniers jours)
fcarl
fcarl le 12 Sep 2011
Hi,
I have a simple question but no matlab command for this :). I have a vector containing zeros and ones. I want to find every beginning of a block containing only of ones. For example: 000110011100. I want to get 4 and 8 as the indices indicating the beginning of a block with only ones.
Thank you for your efforts.

Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 12 Sep 2011
a=[0 0 0 1 1 0 0 1 1 1 0 0]
ind=find(diff(a)==1)+1
Not too fast. This won't work if a starts with 1. Use this instead
a=[1 1 0 0 0 1 1 0 0 1 1 1 0 0]
ind=find(diff([0 a])==1)
  3 commentaires
Fangjun Jiang
Fangjun Jiang le 12 Sep 2011
See my update.
Andrei Bobrov
Andrei Bobrov le 12 Sep 2011
ind = strfind([0 a],[0 1])

Connectez-vous pour commenter.

Plus de réponses (1)

fcarl
fcarl le 12 Sep 2011
I recognized this ;) the function was helpfull :)

Catégories

En savoir plus sur Modeling 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