I want to do a 1D integral of some 2D data

3 visualizaciones (últimos 30 días)
Matthew Hunt
Matthew Hunt el 16 de Ag. de 2021
Comentada: Matthew Hunt el 16 de Ag. de 2021
Suppose I have a function which is defined as some numerical data which is equally spaced and I wish to compute:
How would I go about it? I thought I would start something akin to:
x=linspace(-3,3,200),y=linspace(-3,3,200);
[X,Y]=meshgrid(x,y);
Z=0.5*(X.^2+Y.^2);
%This creates a plottable surface, then I tried something like:
g=trapz(Z,y,2);
but it threw up an error. Any suggestions?

Respuesta aceptada

Wan Ji
Wan Ji el 16 de Ag. de 2021
trapz function has been wrongly used, trapz(x_array, F(x,y)) is with . So you should do following
x=linspace(-3,3,200);
y=linspace(-3,3,100);
[X,Y]=meshgrid(x,y);
Z=0.5*(X.^2+Y.^2);
%This creates a plottable surface, then I tried something like:
g=trapz(y,Z);
plot(x,g,'r*')
hold on
g2 = 0.5*(x.^2*6 + 1/3*(3^3+3^3));
plot(x,g2, 'b--')
legend('trapz','exact')
  1 comentario
Matthew Hunt
Matthew Hunt el 16 de Ag. de 2021
That's precisely what I was looking for, thank you.

Iniciar sesión para comentar.

Más respuestas (1)

Walter Roberson
Walter Roberson el 16 de Ag. de 2021
g=trapz(y,Z,2);
... but be careful about which dimension is x and which dimension is y. In MATLAB, rows correspond to y and columns correspond to x, and rows is the first dimension...

Categorías

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

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by