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('') 展开
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('') 展开
2个回答
展开全部
在后面加一句axis auto试试。
ezplot3会根据最后一次绘图来确定坐标范围,有可能导致前面绘图不在显示范围内。
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 广告
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询