How to create zeros between ones in array

1 vue (au cours des 30 derniers jours)
Samuel
Samuel le 30 Juin 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

Réponse acceptée

Azzi Abdelmalek
Azzi Abdelmalek le 30 Juin 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

Plus de réponses (1)

Andrei Bobrov
Andrei Bobrov le 30 Juin 2014
B = zeros(size(A));
B([strfind([0 A],[0 1]),strfind([A 0],[1 0])]) = 1;

Catégories

En savoir plus sur Mathematics dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by