calculation of successive diffrence

2 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
Edited: 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

Categories

Find more on Data Import and Analysis in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!