Definite integral over discrete data

2 visualizaciones (últimos 30 días)
Zoro
Zoro el 25 de Nov. de 2015
Comentada: Star Strider el 26 de Nov. de 2015
Hi, I have a set of discrete data "A" over frequency "f". I want to integrate "A" over "f" from "f1" to "f2". I don't want to integrate over all frequency range. Using trapz(f,A) it gives me the integral over all frequencies... How can I do that? -Thank you

Respuesta aceptada

Star Strider
Star Strider el 25 de Nov. de 2015
Editada: Star Strider el 25 de Nov. de 2015
Without your data I can only outline the approach:
ix1 = find(f <= f1, 1, 'last');
ix2 = find(f >= f2, 1, 'first');
Alim = A(ix1:ix2);
flim = f(ix1:ix2);
int_f1_f1 = trapz(flim, Alim)
This finds the last index of ‘f’ less than or equal to ‘f1’ and the first index greater than or equal to ‘f2’. It then uses those indices to create ‘flim’ and ‘Alim’.
This is UNTESTED CODE but should work.
  2 comentarios
Zoro
Zoro el 25 de Nov. de 2015
It worked... Thanks!
Star Strider
Star Strider el 25 de Nov. de 2015
My pleasure!

Iniciar sesión para comentar.

Más respuestas (1)

Adam
Adam el 25 de Nov. de 2015
Editada: Adam el 25 de Nov. de 2015
trapz( f( startIdx:endIdx ), A( startIdx:endIdx ) )

where startIdx and endIdx are the indices of the frequencies f1 and f2 which you can find by e.g.

startIdx = find( f >= f1, 1 );
endIdx = find( f >= f2, 1 );

if you don't already have them. I use >= there because exact equality tests are not stable with doubles, but you can change the test there to whatever you prefer.

  4 comentarios
Adam
Adam el 26 de Nov. de 2015
Thanks! I've never come across it before.
Star Strider
Star Strider el 26 de Nov. de 2015
My pleasure! You will if you post often enough, although the spam trap has gotten progressively more sophisticated since the spam inundations in the Spring of 2014.
There should be a link on the spam notice you see that tells you to contact MathWorks if you believe the spam trap flagged it erroneously. I always click on it and include the URL of the post in my message, although I suspect several people with privileges to do so see the false positive and remove it, as I did with yours.

Iniciar sesión para comentar.

Categorías

Más información sobre Numerical Integration and Differentiation en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by