How to get back the values of a curve from its cumulative integral value?

I have a amplitude distribution with time ( i.e. real curve, blak line). Then I did cumulative trapezoidal inegration of the curve using cumtrapz, which is represented by blue curve. Now, I again retain the real curve i.e. black curve from its cumulative integration i.e. blue curve. How I will get the real curve? Please provide me the suggestions. Thanks in advance.

 Accepted Answer

Use diff to find real curve from cumulative trapezoid result

6 Comments

it is only showing zero values after applying diff.
See this
x = 0:0.1:10;
y = x.*sin(x); % original data
inty = cumtrapz(x,y); % integrated data
y1 = diff(inty)./diff(x); % return data
plot(x,y,'k')
line(x,inty,'color','r')
line(x(2:end),y1)
legend('original','integra','returned')
Thank you so much for your clarification. But, in my problem it is not working. I have a matrix with dimension 64 by 1, where 1st column is having amplitude values (attached). Now, I am doing cumtrapz to obtain integral value and then did diff to retain original values. But, i am not getting the exact values as original. Could you please check it once.
Works ok for me
clc,clear
y = load('data.txt');
x = 1:length(y);
inty = cumtrapz(x,y);
y1 = diff(inty)./diff(x);
plot(x,y,'r')
line(x,inty,'color','k','linestyle','--')
line(x(2:end),y1)
legend('original','returned')
Thank you so much. I did mistake in length of the data. Now it is appropiate. Thanks a lot.

Sign in to comment.

More Answers (0)

Categories

Find more on MATLAB in Help Center and File Exchange

Asked:

AS
on 5 Apr 2021

Commented:

AS
on 7 Apr 2021

Community Treasure Hunt

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

Start Hunting!