sanalex 发表于 2009-5-2 10:27

怎么实现一个button_callback在两个axes上绘图啊?

怎么实现一个button_callback在两个axes上绘图啊?
也就是怎么解决axes(handles.axes1)与axes(handles.axes2)的问题。

我想使用for,但是不行啊
global sys1
pic(1)=nyquist(sys1); pic(2)=bode(sys1);
for m=1:2
    axes(handles.axes(m)); plot(pic(m));hold on
end

[ 本帖最后由 ChaChing 于 2009-5-2 11:14 编辑 ]

ChaChing 发表于 2009-5-2 11:18

回复 楼主 sanalex 的帖子

给齐完整格式:出错代码和出错提示!

sanalex 发表于 2009-5-2 11:25

我是先设计界面,然后编代码,再调试。不返回错代码和出错提示啊
那我可不可以再问一下,怎么出错代码和出错提示啊?
真是辛苦chaching了!先谢谢啦!

ChaChing 发表于 2009-5-2 11:57

GUI个人已不熟了! 没有出错提示, 不好判断问题, 至少个人不行!
但LZ列出代码好像问题就很多了!
1.nyquist/bode两函数可以回传handle吗?
2.handles是什麽? 不懂
3.pic又是是什麽? 不懂! 可以plot(pic)吗?

sanalex 发表于 2009-5-2 12:02

但是我这个可以啊
global sys1
axes(handles.axes1)
pic=step(sys1)
plot(pic);hold on

ChaChing 发表于 2009-5-2 12:18

我目前用的版本是2006a, nyquist/bode/step函数皆不可以回传handle的!
但注意是可以hh=nyquist(sys), 不过hh并非handle!

yufeng 发表于 2009-5-3 07:17

可以写两个 一个是handles.axes1 一个是handles.axes2

sanalex 发表于 2009-5-3 10:23

这个我会了!
a=;b=; sys1=tf(a,b);
pic1=step(sys1); pic2=impulse(sys1);
axes(handles.axes1); plot(pic1)
axes(handles.axes2); plot(pic2)
其实就是:axes(handles.axes1); plot(pic1)
               axes(handles.axes2); plot(pic2)

怎么用GUI画伯德图啊?
程序画step impulse能行
可不知道为什么换成pic1=nyquist(sys1)   pic2=bode(sys1)就不行了,谁能告我一下怎么画吗?

[ 本帖最后由 ChaChing 于 2009-5-3 12:33 编辑 ]

ChaChing 发表于 2009-5-3 16:36

GUI个人真的已不熟了! 新版的几乎没玩了, 所以4F的疑问请见谅
中午有空试下最简单的, 产生2个axis及1个按钮, 看下了基本架构
有点了解了, 原来函数原为function pushbutton1_Callback(hObject, eventdata, handles)
而且怎会没报错讯息? 如下
??? Error using ==> plot
Data may not have more than 2 dimensions
...

ChaChing 发表于 2009-5-3 16:52

LZ的问题出在, step/impulse返回的变数为2-D double array, 而bode/nyquist为3-D double array, plot并不针对3-D的!
step/impulse两者为针对时域, bode/nyquist为frequency response, 两者当然不同!
建议看清楚bode及nyquist的帮助文献!
试试下式, 具体视LZ的需求修改
= nyquist(sys1); = bode(sys1);
axes(handles.axes1); plot(re(:),im(:))
axes(handles.axes2); plot(mag(:))

sanalex 发表于 2009-5-3 21:30

很感谢chaching!
不过我找到更好的方法了
a=;b=;sys1=tf(a,b)
axes('position',,'box','on');
grid
nyquist(sys1)
axes('position',,'box','on');
grid
bode(sys1)
其中得要细心修改啦!

sanalex 发表于 2009-5-3 21:32

回复 10楼 ChaChing 的帖子

LZ的nyquist图画的不全,也可能是我不会设参数。

ChaChing 发表于 2009-5-3 22:58

回复 11楼 sanalex 的帖子

这个方式我亦想过! 只不过以下式没试成功! 原因还不知道
axes(handles.axes1); nyquist(sys1)
axes(handles.axes2); bode(sys1);

sanalex 发表于 2009-5-4 08:34

我也感到很奇怪,不知道为什么!
页: [1]
查看完整版本: 怎么实现一个button_callback在两个axes上绘图啊?