1

我想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 插入没有数据的凹区域?

4

0 回答 0