How to create zeros between ones in array

조회 수: 1 (최근 30일)
Samuel
Samuel 2014년 6월 30일
답변: Andrei Bobrov 2014년 6월 30일
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

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2014년 6월 30일
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

추가 답변 (1개)

Andrei Bobrov
Andrei Bobrov 2014년 6월 30일
B = zeros(size(A));
B([strfind([0 A],[0 1]),strfind([A 0],[1 0])]) = 1;

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by