Subtracting vector elements, with an if condition?

13 visualizaciones (últimos 30 días)
Sanshu Bhutiani
Sanshu Bhutiani el 10 de Mayo de 2018
Comentada: Sanshu Bhutiani el 10 de Mayo de 2018
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
Thanks everybody for the answers, it's really appreciated :).

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by