在Matlab中根据离散点坐标绘制空间曲面

    xiaoxiao2021-03-25  94

    使用Matlab内部函数griddata进行插值 读取离散点坐标( x,y,z )数据文件,生成空间曲面 数据文件格式为:每行分别为 x y z 坐标,各数值之间以空格作为分隔符 clc; clear; load Points.txt;  % 读取数据文件 x=Points(:,1); y=Points(:,2); z=Points(:,3); 下面三行为测试数据,分别是 9 个离散点的 xyz 坐标 x=[ 1 2 3 1 2 3 1 2 3 ]; y=[ 1 1 1 2 2 2 3 3 3 ];  z=[ 5 5 5 5 2 5 5 5 5 ]; % 确定网格坐标( x y 方向的步长均取 0.1 [X,Y]=meshgrid(min(x):0.1:max(x),min(y):0.1:max(y));  % 在网格点位置插值求 Z ,注意:不同的插值方法得到的曲线光滑度不同 Z=griddata(x,y,z,X,Y,'v4'); % 绘制曲面 figure(1) surf(X,Y,Z) title 'Points to Surface by griddata' hold on plot3(x,y,z,'*') 举例说明空间坐标数据A; A=[w];%x,y,z轴坐标 x=A(:,1);y=A(:,2);z=A(:,3); scatter3(x,y,z)%散点图 figure [X,Y,Z]=griddata(x,y,z,linspace(min(x),max(x))',linspace(min(y),max(y)),'v4');%插值 pcolor(X,Y,Z);shading interp%伪彩色图 figure,contourf(X,Y,Z) %等高线图 figure,surf(X,Y,Z);%三维曲面
    转载请注明原文地址: https://ju.6miu.com/read-40629.html

    最新回复(0)