永发信息网

Matlab 双y轴如何添加数据?

答案:2  悬赏:0  手机版
解决时间 2021-04-06 15:55
  • 提问者网友:谁的错
  • 2021-04-06 06:09
大致如下:
[ax,h1,h2]=plotyy(t,s1,t,s2);
hold on;
for i=1:10
plot(ax(1),t(i),y1(i));
hold on;
end
for i=1:10
plot(ax(2),t(i),y2(i));
hold on;
end

注:s1,s2分别是对应于散点y1,y2拟合出来的曲线,
问题:画好双Y轴图之后往上面添加散点,第一个FOR循环完全正常,但第二个无法执行,ERROR:Parent destroyed during line creation.个人觉得默认的句柄是ax(1),导致无法往ax(2)上添加数据,请高手指点.

按"我的宇宙031526"的方法做的话,是不会报错,但是第二个循环画的点没有出现,相当于第二个循环不起作用
最佳答案
  • 五星知识达人网友:鸠书
  • 2021-04-06 07:37
也出现了LZ的问题,解决方法如下:

LZ第一个for循环是在操作ax(1) 因为用了 hold on 所以是一直在前一个图的上添加新的点,这没问题。

但是,在运行第二个for循环之前应该加上这么一句:
hold(ax(2));
然后再进行第二个for循环就可以了(可能需要把第二个循环内的 hold on 也改成hold(ax(2)); 或者直接去掉,LZ试一下便知)

我个人感觉是,在多个ax操作的时候,得告诉matlab你要hold具体哪一个ax,不然matlab就晕了~

希望能有帮助,祝好
全部回答
  • 1楼网友:污到你湿
  • 2021-04-06 08:50
例子,详见doc plotyy x = 0:0.01:20; y1 = 200*exp(-0.05*x).*sin(x); y2 = 0.8*exp(-0.5*x).*sin(10*x); [ax,h1,h2] = plotyy(x,y1,x,y2,'plot'); set(get(ax(1),'ylabel'),'string','left y-axis') set(get(ax(2),'ylabel'),'string','right y-axis') xlabel('zero to 20 \musec.') title('labeling plotyy') set(h1,'linestyle','--') set(h2,'linestyle',':')
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯