calculation of successive diffrence

2 visualizzazioni (ultimi 30 giorni)
Rica
Rica il 27 Feb 2014
Risposto: Anuj il 27 Feb 2014
Hi all!
I have a problem with this : I have an array:
% A=[a1 a2 a3 a4 ......an]
i want to calculate succesivelly the diffrenece:
% B=[a2-a1 a3-a2 a4-a3........] but with this condition:
if for exemple a(i)-a(i-1)==2, the diffrence a(i+1)-a(i-1) schould be calculated and the diffrence a(i)-a(i-1)==2 should be eleminated from the Array B.
i wish you could help , Thank you
  1 Commento
the cyclist
the cyclist il 27 Feb 2014
Modificato: the cyclist il 27 Feb 2014
Often in these cases, a small (but complete) example helps to illustrate what you mean. For example, what should the output be if
A = [2 3 5 7 11 13 17 19]
?
The way I am interpreting your question must be wrong, because I would calculate every difference, but then remove every difference from B, leaving an empty matrix.

Accedi per commentare.

Risposta accettata

Andrei Bobrov
Andrei Bobrov il 27 Feb 2014
B = diff(A);
B1 = conv(A,[1 0 -1],'valid');
idx = find(B == 2);
ii = idx <= numel(B1);
i2 = idx(ii);
B(i2) = B1(i2);

Più risposte (1)

Anuj
Anuj il 27 Feb 2014
B = diff(A);
B(find((B==2))=B(find(B==2)+1)+2

Community Treasure Hunt

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

Start Hunting!

Translated by