Subtracting vector elements, with an if condition?

Hey guys,
I need to subtract every element in my array with the element next to it and before it, then if the result of the subtraction is 0 on either subtraction, I need a new array where the elements which weren't 0 are keep their original values, but the elements which were 0 stay 0. Is this possible?
a=[1 2 3 4 5 6 7 7 7 7 7 8 9 10 11 12 13];
b=[1 2 3 4 5 6 0 0 0 0 0 8 9 10 11 12 13];
Thanks in advance!

 Respuesta aceptada

Stephen23
Stephen23 el 10 de Mayo de 2018
Editada: Stephen23 el 10 de Mayo de 2018
a = [1 2 3 4 5 6 7 7 7 7 7 8 9 10 11 12 13];
b = a;
d = diff(a)==0;
b([false,d] | [d,false]) = 0

Más respuestas (2)

Walter Roberson
Walter Roberson el 10 de Mayo de 2018
b = a;
mask = b(1:end-1) = b(2:end);
b([false,mask]|[mask|false]) = 0;
Sanshu Bhutiani
Sanshu Bhutiani el 10 de Mayo de 2018

0 votos

Thanks everybody for the answers, it's really appreciated :).

Categorías

Más información sobre Data Type Identification en Centro de ayuda y File Exchange.

Etiquetas

Preguntada:

el 10 de Mayo de 2018

Comentada:

el 10 de Mayo de 2018

Community Treasure Hunt

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

Start Hunting!

Translated by