【Matlab学习手记】三维散点插值成曲面

问题:已知一系列三维的散点坐标,得到一个经过这些散点的曲面图。

                

  •  实例

    构造一个曲面分布,从曲面上取一些特征点,然后依据这些特征点进行二维插值,用到了griddata函数,提取的特征点越多,插值得到的曲面和原始曲面越接近。

clear; clc;
[X, Y, Z] = peaks(30);
position = [13,26; 20,24; 16,27; 16, 21; 16,24; 9,19; 9,15; 7,17; 12,17; 9,17; 14,16; 14,11; 
            11,12; 16,12; 14,13; 17,11; 16,5; 13,8; 20,8; 17,8; 22,19; 22,12; 20,16; 25,16; 22,16];
p1 = position(:, 1);
p2 = position(:, 2);
x = zeros(1,length(p1));
y = zeros(1, length(p1));
z = zeros(1, length(p1));
for i = 1 : length(p1)
    x(i) = X(p1(i), p2(i));
    y(i) = Y(p1(i), p2(i));
    z(i) = Z(p1(i), p2(i));
end
subplot(1,2,1)
surf(X, Y, Z)
hold on
plot3(x, y, z, 'or', 'MarkerFaceColor', 'r');
hold off
ylim([-2, 2]);
[Xi,Yi,Zi] = griddata(x,y,z,linspace(min(x),max(x), 30)',linspace(min(y),max(y), 30),'v4');
subplot(1,2,2)
surf(Xi,Yi,Zi)
hold on
plot3(x, y, z, 'or', 'MarkerFaceColor', 'r');
hold off

  • 13
    点赞
  • 99
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值