Indefinite integral for a step function with variable number of steps

Hello friends,
I have a function handle which is defined by interp1. Is there a way to find its indefinite integral?
For instance
x0=[1 2 5 7 10];y0=[2 1 3 2]; f=@(x)interp1(x0,y0,x,'previous');
Please note the above example is just a simple case (I know how to handle this easy case). My function is a step function with many steps where the number of steps are not known to me beforehand. So, in general my function is defined by f=@(x)interp1(mesh,c,x,'previous'); where mesh is my x-data, c is a vector of steps or y-data. How to find the indefinite integral of this function?
Thanks in advance!
Babak

 Accepted Answer

The definite integral between a and b where mesh(1) <= a < b <= mesh(end) can be computed as for every other function as
value_integral = integral(f,a,b)
where
f = @(x)interp1(mesh,c,x,'previous')

3 Comments

Unfortunately, even the definite integral fails. Try the following commands
x0=[1 2 5 7 10];y0=[2 1 3 2]; f=@(x)interp1(x0,y0,x,'previous');
value_integral = integral(f,2.5,3.6)
then I get the following error message
Error using interp1>reshapeAndSortXandV (line 445)
X and V must be of the same length.
Error in interp1 (line 128)
[X,V,orig_size_v] = reshapeAndSortXandV(X,V);
Error in @(x)interp1(x0,y0,x,'previous')
Error in integralCalc/iterateScalarValued (line 314)
fx = FUN(t);
Error in integralCalc/vadapt (line 132)
[q,errbnd] = iterateScalarValued(u,tinterval,pathlen);
Error in integralCalc (line 75)
[q,errbnd] = vadapt(@AtoBInvTransform,interval);
Error in integral (line 88)
Q = integralCalc(fun,a,b,opstruct);
y0 has only 4 elements. It must be of the same size as x0 - thus have 5 elements.

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!