- A+

Category：Languages

I'm trying to find the index position of the smaller vector inside a bigger one.

I've already solved this problem using `strfind`

and `bind2dec`

, but I don't want to use `strfind`

, I don't want to convert to string or to deciamls at all.

Given the **longer vector**

`a=[1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1]; `

I want to find the index of the **smaller vector** b inside a

`b=[1,1,1,0,0,0]; `

I would expect to find as **result**:

`result=[15,16,17,18,19,20]; `

Thank you

Solution with `for`

loops:

`a=[1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,0,0,0,0,1,1]; b=[1,1,1,0,0,0]; c = []; b_len = length(b) maxind0 = length(a) - b_len + 1 %no need to search higher indexes for i=1:maxind0 found = 0; for j=1:b_len if a(i+j-1) == b(j) found = found + 1; else break; end end if found == b_len % if sequence is found fill c with indexes for j=1:b_len c(j)= i+j-1; end break end end c %display c `