matlab有X,Y及Z值,Z值离散,为何不能画三维图?需要插值吗?

现在有了X,Y的横纵坐标值及每个点对应的Z值,但是用matlab的plot3画出的是线状不规则图。现在想由这一万多个点画出光滑一点的连续曲面图,但是使用surf时总说Z值... 现在有了X,Y的横纵坐标值及每个点对应的Z值,但是用matlab的plot3画出的是线状不规则图。
现在想由这一万多个点画出光滑一点的连续曲面图,但是使用surf时总说Z值不是matrix。。。明明是的啊。。。。
是不是需要插值才可以呢?
如果是的话,要如何插值呢??
万望大虾们不吝赐教!!
展开
 我来答
springehome
2010-05-05 · TA获得超过1917个赞
知道小有建树答主
回答量:238
采纳率:100%
帮助的人:471万
展开全部
plot3用来画三维曲线图,不能画曲面图;
假设你的数据为
X=[1 2 3 4 5 6 7 8];%当然你的数据可能很复杂
Y=[2 3 4 5 6 7 8 9];
Z = 2 12 36 80 150 252 392 576
%我随意取的满足Z=X.^2*Y,当然你的Z不是很有规律,或者有你不知!
即有(x,y,z)共八组点,你想画出曲面图z=f(x,y)
可是你用surf画曲面图必须是对于X Y交叉的所有Z值都得已知,才可以画出!
>> [xx,yy]=meshgrid(X,Y)
xx =
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
1 2 3 4 5 6 7 8
yy =
2 2 2 2 2 2 2 2
3 3 3 3 3 3 3 3
4 4 4 4 4 4 4 4
5 5 5 5 5 5 5 5
6 6 6 6 6 6 6 6
7 7 7 7 7 7 7 7
8 8 8 8 8 8 8 8
9 9 9 9 9 9 9 9
即你应该知道所有的Z值,而不仅仅是(x,y)=(1,2),(2,3),(3,4),(4,5),(5,6),(6,7),(7,8),(8,9)点处对应的z值,只有这样才能画出你的曲面图
即想方法测出其他点的z值,只有获得了这些以后,才可以用插值函数interp2进行插值获得更精细的曲面图
即缩小区域及间隔
[x0,y0]=meshgrid(1:0.1:10,2:0.1:10)%当然你可以自己取范围与间隔
z0=interp2(X,Y,ZZ,x0,y0)%X,Y为你自己的数据,ZZ为我告诉你要获得的length(Y)行length(X)列的矩阵,得到的z0也为矩阵
surf(x0,y0,z0)%即画出你要的曲线图
希望我的回答能帮助你!
imhxb
2010-05-05 · 超过28用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:92.2万
展开全部
先用[X0,Y0]=meshgrid(X,Y)生成网格;
然后赋值Z=aX+bY;
再surf(X,Y,Z)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xxxxccccgggg
2010-05-05 · TA获得超过333个赞
知道小有建树答主
回答量:437
采纳率:0%
帮助的人:165万
展开全部
我想应该使用三维线条来绘制,不应该使用2D去绘制
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式