Integrating a function over an array of coordinate

14 次查看(过去 30 天)
Hi I'm looking to evaluate an integral w.r.t T over a 3D mesh grid array of coordinates and I'm not quite sure how to do it.
Currently I have this but it doesn't work and I'm not sure why:
% Function to evaluate theta w.r.t T over a 3D meshgrid
[X, Y, Z] = meshgrid(0:1:10, 0:1:10, 0:1:10);
fun = @(T) (T.*((x.^2)+(y.^2)+(z.^2)));
fun2 = @(x,y,z) integral(fun,0,inf);
theta = arrayfun(fun2, X, Y, Z);
Any help would be greatly appreciated Thanks!

回答(2 个)

John D'Errico
John D'Errico 2017-12-2
You CANNOT use integral on a function defined on a list or array of points. Just wanting code to do what it is not programmed to do is a waste of time.
Instead, use a tool that is designed to solve your problem.
help trapz
  1 个评论
Jacob Williams
Jacob Williams 2017-12-2
That doesn't answer my question, I am looking to integrate over a 3D grid of coordinates, I understand that I can't currently do that and that is not what the code is programmed for, hence why I am looking for a different solution.
trapz is not that solution as it is only 2D and in future you could be less condescending in your answer

请先登录,再进行评论。


Prajwal Gowdru Shanthamurthy
I didn't really understand the integral you're trying to compute. I'm not sure if this might help. Please take a look.

类别

Help CenterFile Exchange 中查找有关 Numerical Integration and Differentiation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by