# How to create zeros between ones in array

1 view (last 30 days)
Samuel on 30 Jun 2014
Answered: Andrei Bobrov on 30 Jun 2014
hello,
anyone know a fast way to create zeros between ones in an array?
for example A = [0 0 0 1 1 1 1 0 0 0]
I want it to return B = [0 0 0 1 0 0 1 0 0 0]
I was thinking of doing a double for loop running from the left side and the right. If there is a better way, please let me know. Thanks in advance
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Accepted Answer

Azzi Abdelmalek on 30 Jun 2014
A=[0 0 0 1 1 1 1 0 0 0]
AA=[0 A 0]
i1=strfind(AA,[0 1])+1
i2=strfind(AA,[1 0])-2
for k=1:numel(i1)
A(i1:i2)=0;
end
A
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### More Answers (1)

Andrei Bobrov on 30 Jun 2014
B = zeros(size(A));
B([strfind([0 A],[0 1]),strfind([A 0],[1 0])]) = 1;
##### 0 CommentsShowHide -1 older comments

Sign in to comment.

### Categories

Find more on Logical 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!