MATLAB 不规则随机数据点,画三维曲面图形,griddata, meshgrid

参考MATLAB文档 https://ww2.mathworks.cn/help/matlab/ref/griddata.html

在2019数学建模A题时遇到需要根据三维坐标画出三维曲面图,但由于随机不规则,不能形成坐标矩阵,故直接带入只能生成三维散点图,如,有数据:

u=[5 5 5;
7 2 1;
4 7 2;
6 1 6;
2 6 7;
3 3 4;
1 4 3];
x=u(:,1)
y=u(:,2)
z=u(:,3)

可用代码得到:

plot3(x,y,z,'o')

如使用三维曲面图:

>> [xq, yq] = meshgrid(0:8,0:7);
>> zq = griddata(x, y, z, xq, yq);
>> mesh(xq, yq, zq)

meshgrid 括号里跟两个列表,表明将要取的矩阵点的范围

griddata 为拟合,拟合后的矩阵为xq yq zq

mesh() 为生成网格

当然,也可以生成别的图像,如(以下为了美观,采用另一套坐标点)

surf(xq, yq, vq)

surf(xq, yq, vq)
axis square
shading interp

surfl(xq, yq, vq)
shading interp;
colormap(gray);

  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要用MATLAB三维离散的点绘制成三维曲面拟合,可以使用MATLAB自带的拟合函数,例如“fit”函数或“griddata函数。 以下是一个使用“fit”函数绘制三维曲面拟合的示例代码: ```matlab % 生成随机数据点 x = rand(100,1); y = rand(100,1); z = sin(x.*y.*10) + randn(size(x)); % 使用fit函数进行三维曲面拟合 f = fit([x, y], z, 'poly23'); % 创建新的网格 [X_new, Y_new] = meshgrid(linspace(0,1,50), linspace(0,1,50)); Z_new = f(X_new, Y_new); % 绘制原始数据点和拟合曲面 figure; scatter3(x,y,z,'filled'); hold on; surf(X_new, Y_new, Z_new); xlabel('X'); ylabel('Y'); zlabel('Z'); title('三维曲面拟合'); ``` 这将生成一个图表,显示原始数据点和拟合曲面。您可以根据需要更改数据点和拟合模型,以获得最佳拟合效果。 除了“fit”函数外,您还可以使用griddata函数进行三维曲面拟合。以下是一个使用griddata函数绘制三维曲面拟合的示例代码: ```matlab % 生成随机数据点 x = rand(100,1); y = rand(100,1); z = sin(x.*y.*10) + randn(size(x)); % 创建新的网格 [X_new, Y_new] = meshgrid(linspace(0,1,50), linspace(0,1,50)); % 使用griddata函数进行三维曲面拟合 Z_new = griddata(x, y, z, X_new, Y_new, 'cubic'); % 绘制原始数据点和拟合曲面 figure; scatter3(x,y,z,'filled'); hold on; surf(X_new, Y_new, Z_new); xlabel('X'); ylabel('Y'); zlabel('Z'); title('三维曲面拟合'); ``` 这将生成一个图表,显示原始数据点和拟合曲面。您可以根据需要更改数据点和拟合模型,以获得最佳拟合效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值