Matlab如何画以下数据的三维图

x范围为0-12,13个点。
y的范围为0-6,7个点。
z为每个xy交点上的数据,即x=0时,y=[0.1,0.2,0.3,0.5,0.3,0.1,0.2]
x=1时,y=[0.1,0.2,0.3,0.5,0.3,0.1,0.2]
....
x=12时,y=[0.7,0.8,0.9,0.1,0.3,0.1,0.2]
z的数据是我随意给的,实际数据是实验求得的。
请教如何绘制三维网线图和曲面图
这样写对吗?z为7X13

a=linspace(0, 12, 13);
b=linspace(0,6,7);
[x,y]=meshgrid(a, b); %2维1次插值
z=[];
t=interp2(x, y, Z, 1, 1);
mesh(x, y, t);%
grid on

[x,y]=meshgrid(0:12,0:6);%这一步是必须的

z=sin(x)+cos(y);%这里我就随便生成z了,实际数据你实验会得到的。
%你可以看看,z就是7*13的矩阵。
%z(i,j)就是x(j),y(i)对应的点。知道了这个关系你就可以输入z了。

mesh(x,y,z);%三维网线图,改为surf(x,y,z)就是三维曲面图

----------------------------------------------
z=[];%这里面的数据这么输入,是否应该为12x7的矩阵,例如[0,1,2,2,3,3,4;
2,3,4,5,5,5,4;
.....]
每行7个z值数据,共12行,行于行之间用分号隔开?

你这样输入也可以,就是最后要转置一下。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-06-09

这是程序:
%模型离散点坐标绘图
clc;clear;clear all;
D3 = importdata('qiufpindexdown.txt','') ;  
D3 = importdata('qiufpindexdown.txt');      
x = D3(:,2) ;
y = D3(:,3) ;
z = D3(:,4) ;
tri = delaunay(x,y);
trisurf(tri,x,y,z); 
qiufpindexdown.txt文件和输出结果在附件中。

相似回答