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
0 CommentsShow -2 older commentsHide -2 older comments

Sign in to comment.

Accepted Answer

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;
1 CommentShow -1 older commentsHide -1 older comments
Mathieu NOE on 26 Oct 2020
yep ! it's exactly the same........:)

Sign in to comment.

More Answers (1)

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
2 CommentsShow NoneHide None
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.

Sign in to comment.

Categories

Find more on Characters and Strings in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!