Find places before or after zeros in vector

1 Ansicht (letzte 30 Tage)
Christian S.
Christian S. am 26 Aug. 2021
Kommentiert: Christian S. am 27 Aug. 2021
Hi MATLAB-Community,
I'm searching for an elegant way to mark the places before and after zeros in a Vector.
e.g.:
a = 0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0
before = 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0
after = 0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0
Has anybody an Idea that can help me with that Problem?
Thanks in advance!
Cheers
Christian

Akzeptierte Antwort

Ive J
Ive J am 26 Aug. 2021
Bearbeitet: Ive J am 26 Aug. 2021
a = [0 0 0 1 1 1 0 0 1 1 1 0 1 1 1 0 1 1 0];
before = [0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 0 1 0 0];
after = [0 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0];
da = [diff(a), 0];
bcheck = circshift(da > 0, 1);
acheck = da < 0;
all(bcheck == before)
ans = logical
1
all(acheck == after)
ans = logical
1
This may not cover leading and trailing zeros, though before and after zeros may not make sense in that case.

Weitere Antworten (0)

Kategorien

Mehr zu Downloads finden Sie in Help Center und File Exchange

Produkte


Version

R2020b

Community Treasure Hunt

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

Start Hunting!

Translated by