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

 Akzeptierte Antwort

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 Kommentare

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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by