24小时热门版块排行榜    

查看: 3685  |  回复: 11

安仙儿

新虫 (小有名气)

[求助] 在matlab中用mesh画三维图存在的问题

大家好,我在用matlab中采用mesh画三维图,用hold on语句想将几块的三维图画在一个图上,但是只能显示一部分,其他部分都显示不出来,请教高手。多谢多谢。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

引用回帖:
2楼: Originally posted by 安仙儿 at 2013-05-09 11:14:49
z1=0:0.05:10;                  
v1=1.065e+10:5e+6:1.185e+10;                                            
=meshgrid(z1,v1);
P1=(v_B1-v1).^2;                    
mesh(z1,v1,P1)

z2=10:0.05:20;    ...

v_B1、v_B2、v_B3是什么东东?
明德厚学、求是创新
3楼2013-05-09 23:07:45
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

【答案】应助回帖

感谢参与,应助指数 +1
引用回帖:
10楼: Originally posted by 安仙儿 at 2013-05-11 17:40:23
因为Z1和Z2的值不是一个数量级的。我之前说Z1和Z2有交点的意思是有相同的X和Y值。若用Hold on 的话,Z1和Z2在X和Y取值的范围内无法相交,因为他们是两个数量级上的值。...

那求交点有什么意思?
按你的思路,给Z1或Z2乘以一个系数,画同一个图里找交点吧。
系数可能要多试试,没更好的办法。

» 本帖已获得的红花(最新10朵)

明德厚学、求是创新
11楼2013-05-11 20:06:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

安仙儿

新虫 (小有名气)

z1=0:0.05:10;                  
v1=1.065e+10:5e+6:1.185e+10;                                            
[z1,v1]=meshgrid(z1,v1);
P1=(v_B1-v1).^2;                    
mesh(z1,v1,P1)

z2=10:0.05:20;                  
v2=1.065e+10:5e+6:1.185e+10;                                            
[z2,v2]=meshgrid(z2,v2);
P2=(v_B2-v2).^2;
hold on;                    
mesh(z2,v2,P2);

z3=20:0.05:30;                  
v3=1.065e+10:5e+6:1.185e+10;                                            
[z3,v3]=meshgrid(z3,v3);
P3=(v_B3-v3).^2;
hold on;                    
mesh(z3,v3,P3);
为什么我仿出来的图像只有z1部分,其他部分都显示不出来
2楼2013-05-09 11:14:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安仙儿

新虫 (小有名气)

哦,v_B1、v_B2、v_B3是之前定义的值,是固定的数。这个问题我已经解决了,除了上面贴出的程序外还有一些基本的参数,我将这些参数在每一段里重新定义了一下,就可以仿出完整的图形了。非常感谢你的回复。
4楼2013-05-10 08:31:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安仙儿

新虫 (小有名气)

二维图中,可以用[AX,H1,H2]=plotyy(X,Y1,X,Y2,'plot')函数表示出两个纵坐标,那三维图中,如果有(X,Y,Z1)和(X,Y,Z2)两组,想将其放置在一个三维图中,即Z轴坐标有两种值的话,如何用程序表达呢?
5楼2013-05-10 09:16:17
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

引用回帖:
5楼: Originally posted by 安仙儿 at 2013-05-10 09:16:17
二维图中,可以用=plotyy(X,Y1,X,Y2,'plot')函数表示出两个纵坐标,那三维图中,如果有(X,Y,Z1)和(X,Y,Z2)两组,想将其放置在一个三维图中,即Z轴坐标有两种值的话,如何用程序表达呢?

这个还真没见过,有必要这样显示吗?
明德厚学、求是创新
6楼2013-05-10 09:44:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安仙儿

新虫 (小有名气)

引用回帖:
6楼: Originally posted by xiegangmai at 2013-05-10 09:44:46
这个还真没见过,有必要这样显示吗?...

哦,其实是这样的,Z1=C1*X+C2*Y,C1与C2均为常数,Z1与C1和C2是线性的关系,Z2与X和Y是一个非线性的较为复杂的函数表达式,我想联立Z2与Z1看能否解出X和Y值,所以想先在matlab中用三维图看两个图形是否有相交的点。其他的我暂时想不出来怎么做了,您有什么建议吗?
7楼2013-05-11 08:36:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安仙儿

新虫 (小有名气)

我在网上找了找,貌似确实没看到过三维图中,两种Z轴坐标的。
8楼2013-05-11 08:38:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiegangmai

版主 (职业作家)

我没头衔

优秀版主优秀版主优秀版主

引用回帖:
7楼: Originally posted by 安仙儿 at 2013-05-11 08:36:55
哦,其实是这样的,Z1=C1*X+C2*Y,C1与C2均为常数,Z1与C1和C2是线性的关系,Z2与X和Y是一个非线性的较为复杂的函数表达式,我想联立Z2与Z1看能否解出X和Y值,所以想先在matlab中用三维图看两个图形是否有相交的点。 ...

在同一个图中把Z1和Z2画出来就可以看有没有交点了啊。用两个z轴的意义是什么呢?
明德厚学、求是创新
9楼2013-05-11 08:41:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

安仙儿

新虫 (小有名气)

引用回帖:
9楼: Originally posted by xiegangmai at 2013-05-11 08:41:19
在同一个图中把Z1和Z2画出来就可以看有没有交点了啊。用两个z轴的意义是什么呢?...

因为Z1和Z2的值不是一个数量级的。我之前说Z1和Z2有交点的意思是有相同的X和Y值。若用Hold on 的话,Z1和Z2在X和Y取值的范围内无法相交,因为他们是两个数量级上的值。
10楼2013-05-11 17:40:23
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 安仙儿 的主题更新
信息提示
请填处理意见