Going back from cumsum for a matrix

1 view (last 30 days)
Suppose I cumsum a matrix, say A=rand(3,3); B=cumsum(A).
Knowing B, how to I get back to A, in a reasonably efficient way, for a rather large B?
Thanks!
  1 Comment
valentino dardanoni
valentino dardanoni on 21 Oct 2022
Thankyou David (and Walter). It works perfectly in my application.

Sign in to comment.

Accepted Answer

David Hill
David Hill on 21 Oct 2022
A=round(rand(100,100),4);
B=cumsum(A);
a=round([B(1,:);diff(B)],4);
isequal(A,a)
ans = logical
1
  1 Comment
Walter Roberson
Walter Roberson on 21 Oct 2022
Right.
Key points here are the use of diff(), the duplication of the first entry, and the rounding or other way of comparing with tolerance for the cross-check (since you would need to deal with round-off errors.)

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB 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!