I want to do a 1D integral of some 2D data
3 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Matthew Hunt
am 16 Aug. 2021
Kommentiert: Matthew Hunt
am 16 Aug. 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?
0 Kommentare
Akzeptierte Antwort
Wan Ji
am 16 Aug. 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')
Weitere Antworten (1)
Walter Roberson
am 16 Aug. 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...
0 Kommentare
Siehe auch
Kategorien
Mehr zu Numerical Integration and Differentiation finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!