MATLAB插值错误推断凹边界

时间:2018-02-06 11:25:27

标签: matlab interpolation contourf concave

我想用Ansus Fluent在MATLAB的contourf情节中绘制表面解决方案。 该解决方案是ASCII格式的表格,其中包含散点(x,y,z),用于描述每个点的平面和温度。

在第一张图片上,您可以看到散点图,其中所有点和温度都是颜色。在这里,您可以看到边界的正确几何形状。

enter image description here

但如果我想要一个轮廓图,我需要插入散点。在下一张图片上,您可以看到结果。问题是MATLAB插入"通过"边界,例如在底部。我认为这个问题与凹边界和Delauney三角剖分有关。

enter image description here

我的代码

clear all
close all
clc

data_txt = importdata('file'); % 5Columns: NodeNumber, x,y,z,temperature

data_int = scatteredInterpolant(data_txt.data(:,3),data_txt.data(:,4),data_txt.data(:,5),'natural','none');

x_min=min(data_txt.data(:,2));
x_max=max(data_txt.data(:,2));

y_min=min(data_txt.data(:,3));
y_max=max(data_txt.data(:,3));

z_min=min(data_txt.data(:,4));
z_max=max(data_txt.data(:,4));

x = x_min:0.0001:x_max;
y = y_min:0.0001:y_max;
z = z_min:0.0001:z_max;

[Y, Z] = meshgrid(y, z);

data_int_ = data_int(Y,Z);

figure_handle=figure;
contourf(Y,Z,data_int_,100,'Edgecolor','none');

在这种情况下,x坐标是常量。我可以使用旋转矩阵对每个坐标执行此操作。比我有x,y,数据问题。

有没有办法插入我的散点,但要获得正确的边界形状?如何阻止Matlab插入没有数据的凹区?

0 个答案:

没有答案