Find the index of the first integer of an array in another array

Hi,
I want to find the index of the first integer of an array in another array. For example.
I have array A = [ 0 0 0 ] and I have array B= [ 1 2 3 4 0 0 0 5 6 7 0 0 8 9 ]
A = [ 0 0 0 ];
B= [ 1 2 3 4 0 0 0 5 6 7 0 0 8 9 ];
I want find the index of array B where array A starts. In this case array A starts from index 5 in array B.
So my outcome should be:
ans = 5
The thing I am looking for looks like find() but instead of finding just one value, I am searching for multiple values in succession of each other.

 Accepted Answer

Easier to find repeated patterns with string pattern searches than as vector arrays--
ix=strfind(sprintf('%d',ismember(B,A)),repmat('1',1,numel(A)));

2 Comments

Using strfind is brilliant! To expand on this, if A happens to contain different values:
ix=strfind(sprintf('%d',B),sprintf('%d',A));
Actually that's a nice refinement -- no real need to convert to logical.

Sign in to comment.

More Answers (0)

Categories

Find more on Operators and Elementary Operations in Help Center and File Exchange

Asked:

on 1 May 2020

Commented:

dpb
on 3 May 2020

Community Treasure Hunt

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

Start Hunting!