我想contourf
用 MATLAB 在绘图中绘制来自 Ansys Fluent 的曲面解决方案。解决方案是一个 ASCII 格式的表格,其中包含分散的点 (x,y,z),这些点描述了一个平面和每个点的温度。
在第一张图片上,您可以看到以所有点和温度为颜色的散点图。在这里,您可以看到边界的正确几何形状。
但是如果我想要一个等高线图,我需要对散点进行插值。在下一张图片中,您可以看到结果。问题是 MATLAB “通过”边界进行插值,例如在底部。我认为这个问题与凹边界和德劳尼三角剖分有关。
我的代码
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 坐标是恒定的。我可以通过使用旋转矩阵对每个坐标执行此操作。比我有 ax,y,data 问题。
有没有办法插入我的散点,但要获得正确的边界形状?如何阻止 Matlab 插入没有数据的凹区域?