Compute Gradient of a Scalar 3-D Field Defined On a non Uniform Grid

6 次查看(过去 30 天)
I have the values of a scalar Field in 3 dimensions over a randomly arranged set of points in space. How do I calculate the components of the gradient of such function at the same point locations?

回答(2 个)

Ramesh Rajesh
Ramesh Rajesh 2021-3-25
Did you manage to figure out ? I have same question.

darova
darova 2021-3-25
What about griddata?
% assume x,y,z are your random coordinates
% assume u,v,w are your vectors (gradients)
% assume that you can interpolate Z variable
xx = linspace(min(x(:)),max(x(:)),20);
yy = linspace(min(y(:)),max(y(:)),20);
[x1,y1] = meshgrid(xx,yy); % create regular mesh
z1 = griddata(x,y,z,x1,y1); % interpolate Z coordinate
u1 = griddata(x,y,u,x1,y1); % interpolate gradient U
v1 = griddata(x,y,v,x1,y1); % interpolate gradient V
w1 = griddata(x,y,w,x1,y1); % interpolate gradient W
  2 个评论
Ramesh Rajesh
Ramesh Rajesh 2021-3-26
Thanks for your code. I have data of coordinates in X,Y,Z with a scalar value. The locations of X,Y,Z are random. How do I find gradients (u,v,w) of the random coordinates?

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Interpolation 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by