# How to find position of array

1 view (last 30 days)
Wind flower on 17 Jun 2019
Edited: madhan ravi on 20 Jun 2019
For example i have data like this [11111100001111]
Now i need to find out the position of first 1 and last 1 of first group of 1s and then position of first 1 and last 1 of second group of 1s. How do i do this??
i have used' find' to find the position of all 1s but i dont want all...instead 1 want only the first and last position of groupof 1s
##### 2 CommentsShowHide 1 older comment
Wind flower on 20 Jun 2019
for my data [11111100001111], the answer would be 1 and 6 for first set , 11 and 14 for the second set. Afer that i want to save that in array like this:
1 6
11 14

Debasish Samal on 17 Jun 2019
Edited: Debasish Samal on 17 Jun 2019
You can use regular expressions to do this.
x = '11111100001111';
expr = '1*';
[sInd,eInd] = regexp(x, expr)
This gives the following result:
sInd = 1×2
1 11
eInd = 1×2
6 14
You just need to convert the input data into a string.
Wind flower on 20 Jun 2019
Thank You

madhan ravi on 17 Jun 2019
Simpler without any conversions:
s=[1 0 1 1 0 0 0 0 1 1 1 1]; % example data
x=s~=0;
Start = strfind([0,x],[0 1])
End = strfind([x,0],[1 0])
Wind flower on 20 Jun 2019