怎么实现一个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 编辑 ]
回复 楼主 sanalex 的帖子
给齐完整格式:出错代码和出错提示! 我是先设计界面,然后编代码,再调试。不返回错代码和出错提示啊那我可不可以再问一下,怎么出错代码和出错提示啊?
真是辛苦chaching了!先谢谢啦! GUI个人已不熟了! 没有出错提示, 不好判断问题, 至少个人不行!
但LZ列出代码好像问题就很多了!
1.nyquist/bode两函数可以回传handle吗?
2.handles是什麽? 不懂
3.pic又是是什麽? 不懂! 可以plot(pic)吗? 但是我这个可以啊
global sys1
axes(handles.axes1)
pic=step(sys1)
plot(pic);hold on 我目前用的版本是2006a, nyquist/bode/step函数皆不可以回传handle的!
但注意是可以hh=nyquist(sys), 不过hh并非handle! 可以写两个 一个是handles.axes1 一个是handles.axes2 这个我会了!
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 编辑 ] GUI个人真的已不熟了! 新版的几乎没玩了, 所以4F的疑问请见谅
中午有空试下最简单的, 产生2个axis及1个按钮, 看下了基本架构
有点了解了, 原来函数原为function pushbutton1_Callback(hObject, eventdata, handles)
而且怎会没报错讯息? 如下
??? Error using ==> plot
Data may not have more than 2 dimensions
... 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(:)) 很感谢chaching!
不过我找到更好的方法了
a=;b=;sys1=tf(a,b)
axes('position',,'box','on');
grid
nyquist(sys1)
axes('position',,'box','on');
grid
bode(sys1)
其中得要细心修改啦!
回复 10楼 ChaChing 的帖子
LZ的nyquist图画的不全,也可能是我不会设参数。回复 11楼 sanalex 的帖子
这个方式我亦想过! 只不过以下式没试成功! 原因还不知道axes(handles.axes1); nyquist(sys1)
axes(handles.axes2); bode(sys1); 我也感到很奇怪,不知道为什么!
页:
[1]