matlab二维离散点数据拟合(如ansys fluent 导出的节点数据)
scatteredInterpolant对非均匀分布的散点数据拟合
·
x,y,z为需要拟合或插值的数据。x0,y0,是我们想要求的插值数据Z0对应的坐标。
对散点数据用scatteredInterpolant可以进行拟合,
命令:F=scatteredInterpolant(x, y, z, 'linear');Z0=F(x0,y0);
使用scatteredInterpolant命令,要求X,Y,Z均为列向量,且数据个数一样。比如X有N行,那么Y和Z也要有N行。
% 假设我们有一些非均匀的二维数据点
x = [1, 2, 3, 4, 5, 1, 3, 5, 2, 4]; % x坐标
y = [1, 1, 1, 1, 1, 2, 2, 2, 3, 3]; % y坐标
z = rand(1, 10); % 对应的z值,这里随机生成
% 使用scatteredInterpolant进行样条插值
F = scatteredInterpolant(x, y, z, 'linear'); % 'linear' 可以替换为 'nearest', 'cubic' 等
% 创建一个网格以评估插值结果
[Xq, Yq] = meshgrid(linspace(min(x), max(x), 100), linspace(min(y), max(y), 100));
Zq = F(Xq, Yq); % 在网格点上计算插值
% 绘制原始数据点和插值结果
figure;
scatter3(x, y, z, 'filled'); % 绘制原始数据点
hold on;
surf(Xq, Yq, Zq, 'EdgeColor', 'none'); % 绘制插值曲面
xlabel('X');
ylabel('Y');
zlabel('Z');
title('二维非均匀样条拟合');
view(3); % 以3D视角查看

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐
所有评论(0)