matlab中等高线contour的问题

[复制链接]
查看11 | 回复1 | 2009-5-6 20:10:16 | 显示全部楼层 |阅读模式
数据格式为:
编号 x坐标 y坐标 z高程
1,270.55,-31.72,143.08
2,262.40,-31.10,134.48
3,257.20,-30.28,127.28
4,254.81,-31.21,123.36
·····
现在我已经用csvread函数把x,y,z分别提取出来了 存在x,y,z 这三个vector里
而且实现了用satter(x,y)把点展到图上(如图)现在的问题是:
怎么生成等高线或者曲面啊?
contour(x,y,z)好像不行啊
报错提示是说我这个z矩阵应该是一个2X2以上的矩阵
我这里z是一个以为数组
是要在用contour之前把数据重新组织一下么,怎么组织?
但是我对matlab的数据结构不是很熟
希望有达人指点


回复

使用道具 举报

千问 | 2009-5-6 20:10:16 | 显示全部楼层
x=rand(1,10);y=rand(1,10);z=rand(1,10); %我这里用随机数了,你的用读取到的数据代替。%要把离散数据网格化,因为contour,surface和mesh接受的都是网格化数据。xi=linspace(min(x),max(x),50);%从最小到最大之间取若干点,我用了50个,你可以随意改。yi=linspace(min(y),max(y),50);[xi,yi]=meshgrid(xi,yi);
%网格化x,yzi=griddata(x,y,z,xi,yi,'cubic');% 网格化z,实际上就是二维插值,可以用'linear'有棱角的,'cubic'就比较平滑。...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行