How to Interpolate coordiantes and values of a surface plot

7 次查看(过去 30 天)
Hi,
I have a set of coordinates that creates a mesh - i.e. XYZ coordinates of a set of quadrilateral panels that creates a mesh, as shown below.
I also have the coordinates of the centroid of each panel. Moreover, I have a pressure value at each of those centroids. I have attached the mesh coordiante file herewith (needs to be mirrored).
I'm not sure if I'm doing a good job explaining the problem, so I followed a rather graphical approach to show what I mean.
Now, I want to find coordinates (XYZ) at a particular XZ plane. For instance, say, I have a plane x = -3.0, as shown. I would like to find the coordinates XYZ on the surface that matches the said x values. Further, I want to find the interpolated pressure value too, that are acting along that specified x values.
How can I achieve this?
Thank you in advance!

回答(1 个)

Matt J
Matt J 2023-1-20
编辑:Matt J 2023-1-20
You can build a scatteredInterpolant object. Then you can interpolate anywhere you wish.
load('mesh_coordinates.mat');
centroids=cell2mat(cellfun(@mean,mesh_coordinates,'un',0));
F=scatteredInterpolant(centroids(:,1:2), centroids(:,3));
x=-0.3;
[ymin,ymax]= bounds(centroids(:,2));
y=linspace(ymin,ymax,100);
z=F({x,y});
plot(y,z,'o-'); xlabel y; ylabel z; title 'Cross Section @x=-0.3'
  1 个评论
Matt J
Matt J 2023-1-20
编辑:Matt J 2023-1-20
For the pressure value interpolation, you would do the same thing, but interpolatng pressure instead of z.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by