MATLAB中用ezplot3将两个图画在同一个figure中

如题,MATLAB中为什么不能用这种方法将两个图叠加到同一个figure中呢?ezplot3(x,y,z)holdonezplot3(xp,yp,zp)clc,clear... 如题,MATLAB中为什么不能用这种方法将两个图叠加到同一个figure中呢?
ezplot3(x,y,z)
hold on
ezplot3(xp,yp,zp)
clc,clear all

syms a1
k1=0.08;
n1=7;n2=8;
n=n2/n1;
i12=(1+sqrt(n^2*(1-k1^2)+k1^2))*k1*cos(n1*a1)/(k1^2-1)+(k1^2+sqrt(n^2*(1-k1^2)+k1^2))/(1-k1^2);
deta1=acot(i12);
deta2=pi/2-deta1;
R=37.64;
a2=int(1/i12);

x=R.*sin(deta1).*cos(a1);
y=R.*sin(deta1).*sin(a1);
z=R.*cos(deta1);
xp=-R.*cos(deta2);
yp=R.*sin(deta2).*sin(a2);
zp=R.*sin(deta2).*cos(a2);

ezplot3(x,y,z,[0,2*pi]);
hold on
p=ezplot3(xp,yp,zp,[0,4*pi]);
set(p,'color','r')

title('')
展开
 我来答
tianxiawulang
2014-08-17 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2650万
展开全部
在后面加一句axis auto试试。
ezplot3会根据最后一次绘图来确定坐标范围,有可能导致前面绘图不在显示范围内。
更多追问追答
追问
在上面补充了一个程序,能不能帮我看一下
追答

p=ezplot3(xp,yp,zp,[0,4*pi]);

改成

p=ezplot3(char(xp),char(yp),char(zp),[0,4*pi]);

前者调用的是对sym对象重载的版本,不知出于什么考虑,前面加了一句clf,而且未返回句柄(2008a是这样,不知道后来是否改过来了)。

东莞大凡
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间... 点击进入详情页
本回答由东莞大凡提供
shizairenweie
2014-08-16 · TA获得超过101个赞
知道小有建树答主
回答量:241
采纳率:0%
帮助的人:164万
展开全部
可以啊,你出现什么问题呢
追问
帮我看一下上面的程序吧
追答
这个查询了下,貌似是Bug,你把参数初始化吧,然后用plot3对值进行作图吧,这时hold on是有效的。
你也可以查询Google,利用"ezplot3 hold on"关键词,很多人遇到同样的问题,目前没有看到解决办法。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式