excel里有多行3列数据,怎么用matlab读取excel里的数据绘制出三维曲面图

第一列赋值x,第二列赋值y,第三列赋值z,x范围是0—60(间隔10),y是-10—10(间隔2),Z>0
我是第一次接触mtalab,要是有现成的程序,万分感谢

你是要赋值还是从excel中读取数据,xlsread可以读取数据,三维曲面则可以使用surf进行绘制追问

我想直接读取excel,将excel中的三列数据作为xyz轴绘制出三维曲面图

追答

我看百度知道是这么写的
实际上是无法直接绘制出这样的散点对应的曲面的,需要先根据给出的散点(采样点)数据通过三维插值(或拟合)获得网格节点上的曲面数据。
以下代码或许对你有启发:
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) %绘制曲面

PS:其实excel可以直接绘制三维曲面图,假如只是为了三维曲面图,可以直接用excel绘制

温馨提示:答案为网友推荐,仅供参考
相似回答