matlab画三维图有三组数据x=x1,x2.x20y=y1,y2,.y20z=z1,z2.z20请问怎么样用matlab会出这二十个点((x1,y1,z1),(x2,y2.z2).(x20,y20,z20))的曲面
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/22 01:32:16
![matlab画三维图有三组数据x=x1,x2.x20y=y1,y2,.y20z=z1,z2.z20请问怎么样用matlab会出这二十个点((x1,y1,z1),(x2,y2.z2).(x20,y20,z20))的曲面](/uploads/image/z/691941-21-1.jpg?t=matlab%E7%94%BB%E4%B8%89%E7%BB%B4%E5%9B%BE%E6%9C%89%E4%B8%89%E7%BB%84%E6%95%B0%E6%8D%AEx%3Dx1%2Cx2.x20y%3Dy1%2Cy2%2C.y20z%3Dz1%2Cz2.z20%E8%AF%B7%E9%97%AE%E6%80%8E%E4%B9%88%E6%A0%B7%E7%94%A8matlab%E4%BC%9A%E5%87%BA%E8%BF%99%E4%BA%8C%E5%8D%81%E4%B8%AA%E7%82%B9%EF%BC%88%EF%BC%88x1%2Cy1%2Cz1%EF%BC%89%2C%28x2%2Cy2.z2%29.%28x20%2Cy20%2Cz20%29%EF%BC%89%E7%9A%84%E6%9B%B2%E9%9D%A2)
matlab画三维图有三组数据x=x1,x2.x20y=y1,y2,.y20z=z1,z2.z20请问怎么样用matlab会出这二十个点((x1,y1,z1),(x2,y2.z2).(x20,y20,z20))的曲面
matlab画三维图
有三组数据x=x1,x2.x20
y=y1,y2,.y20
z=z1,z2.z20
请问怎么样用matlab会出这二十个点((x1,y1,z1),(x2,y2.z2).(x20,y20,z20))的曲面
matlab画三维图有三组数据x=x1,x2.x20y=y1,y2,.y20z=z1,z2.z20请问怎么样用matlab会出这二十个点((x1,y1,z1),(x2,y2.z2).(x20,y20,z20))的曲面
实际上是无法直接绘制出这样的散点对应的曲面的,需要先根据给出的散点(采样点)数据通过三维插值(或拟合)获得网格节点上的曲面数据.
以下代码或许对你有启发:
clear
x=[129 140 103.5 88 185.5 195 105.5 157.5 107.5 77 81 162 162 117.5];
y=[7.5 141.5 23 147 22.5 137.5 85.5 -6.5 -81 3 56.5 -66.5 84 -33.5];
z=[-4 -8 -6 -8 -6 -8 -8 -9 -9 -8 -8 -9 -4 -9];
cx=75:0.5:200;
cy=-70:0.5:150;
cz=griddata(x,y,z,cx,cy','cubic');
meshz(cx,cy,cz)
一般情况下可以采用如下我给你编写的函数
function PlotGriddata(x,y,z)
mx=min(x);%求x的最小值
Mx=max(x);%求x的最大值
my=min(y);
My=max(y);
Nx=50; %定义x轴插值数据点数,根据实际情况确定
Ny=50;%定义y轴插值数据点数,根据实际情况确定
cx=linspace(mx,Mx,Nx);%在原始x数据的最大值最小值之间等间隔生成Nx个插值点
cy=linspace(my,My,Ny);%在原始数据y的最大值最小值之间等间隔生成Ny个插值点
cz=griddata(x,y,z,cx,cy','cubic');%调用matlab函数进行立方插值
meshz(cx,cy,cz) %绘制曲面