Effacer les filtres
Effacer les filtres

Find all occuarances of two numbers together

2 vues (au cours des 30 derniers jours)
Inna Pelloso
Inna Pelloso le 26 Oct 2020
Commenté : Image Analyst le 26 Oct 2020
Hi,
I have an array, a = [ 0 -1 1 0 0 -1 1 0]
How can I fing all the ocurances of [ 1 0], ie. the index showing when the number 0 occurs after the number 1.
I want to create, b = [0 0 0 1 0 0 0 0 1].
I'm trying to use teh strfind fuction, but am stuck.
Thank you!
Inna

Réponse acceptée

Ameer Hamza
Ameer Hamza le 26 Oct 2020
Try this
a = [ 0 -1 1 0 0 -1 1 0];
idx = strfind(a, [1 0])+1;
b = zeros(size(a));
b(idx) = 1;
  1 commentaire
Mathieu NOE
Mathieu NOE le 26 Oct 2020
yep ! it's exactly the same........:)

Connectez-vous pour commenter.

Plus de réponses (1)

Mathieu NOE
Mathieu NOE le 26 Oct 2020
hello Inna
you have to test a vs [1 0] and not [0 1]
this is the code :
a = [ 0 -1 1 0 0 -1 1 0];
t = [1 0];
ind = findstr(a,t);
ind_zero = ind+1; % findstr output index is for the first term of "t" (1) => to get the index of the trailing "0" you need to add 1
b = zeros(size(a));
b(ind_zero) = 1
  2 commentaires
Bruno Luong
Bruno Luong le 26 Oct 2020
Modifié(e) : Bruno Luong le 26 Oct 2020
Attention, better use strfind and not findstr, if a = 1
>> findstr(1,[0 1]) % not expected result
ans =
2
>> strfind(1,[0 1])
ans =
[]
Image Analyst
Image Analyst le 26 Oct 2020
findstr is not recommended. Use contains or strfind instead.

Connectez-vous pour commenter.

Catégories

En savoir plus sur Characters and Strings 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