calculation of successive diffrence

3 views (last 30 days)
Rica
Rica on 27 Feb 2014
Answered: Anuj on 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 Comment
the cyclist
the cyclist on 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.

Sign in to comment.

Accepted Answer

Andrei Bobrov
Andrei Bobrov on 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);

More Answers (1)

Anuj
Anuj on 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!