Find all occuarances of two numbers together

1 visualizzazione (ultimi 30 giorni)
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

Risposta accettata

Ameer Hamza
Ameer Hamza il 26 Ott 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;

Più risposte (1)

Mathieu NOE
Mathieu NOE il 26 Ott 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 Commenti
Bruno Luong
Bruno Luong il 26 Ott 2020
Modificato: Bruno Luong il 26 Ott 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 il 26 Ott 2020
findstr is not recommended. Use contains or strfind instead.

Accedi per commentare.

Categorie

Scopri di più su Install Products in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by