# Find all occuarances of two numbers together

1 view (last 30 days)
Inna Pelloso on 26 Oct 2020
Commented: Image Analyst on 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

Ameer Hamza on 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;
Mathieu NOE on 26 Oct 2020
yep ! it's exactly the same........:)

Mathieu NOE on 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
Bruno Luong on 26 Oct 2020
Edited: Bruno Luong on 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 on 26 Oct 2020
findstr is not recommended. Use contains or strfind instead.