注册 登录
编程论坛 Matlab

[求助]关于GUI编程的回调问题

sandylove 发布于 2006-04-25 10:56, 1530 次点击
下面有四个IIR滤波程序,分别是带阻,带通,高通,低通.然后做一个单选按钮的界面,用switch进行先择,按确定按钮则显示相应的滤波图形.我想请问论坛有谁在这方面能指教一下.谢谢

N=10;
wn=[100 200]/500;
[b,a]=butter(N,wn,'stop');
freqz(b,a)

N=10;
wn=[100 200]/500;
[b,a]=butter(N,wn,'bandpass');
freqz(b,a)

N=10;
wn=100/200;
[b,a]=butter(N,wn,'low');
freqz(b,a)

N=10;
wn=100/200;
[b,a]=butter(N,wn,'high');
freqz(b,a)

callback=['switch v',...
case1
case2
case3
case4..
8 回复
#2
sandylove2006-05-04 14:04

怎么没有人来理一下我呢
是不是五一放假全都旅游去了呀

#3
浪书生2006-05-05 12:00

这个很简单,你想不想学?
想学我给你个教程。

#4
crazyrabbit2006-05-05 13:56
看一些简单的例子就基本上会了,在其中的回调函数里面写上代码就行了.
DEMO里面的例子很重要的.
一定要看的.
#5
sandylove2006-05-08 18:54
我想学呀

想学呀
但是太复杂的例子我又看不懂
那个帮助全是E文的
看了都头大

#6
xiaozhugou2006-05-20 21:26
#7
mythzt2006-05-20 23:21

h0=figure('toolbar','none','position',[198 56 500 450],'name','IIR滤波程序');
h1=axes('parent',h0,'position',[0.15 0.45 0.7 0.5]);

N=10;
wn=[100 200]/500;
wn1=100/200;
k1=uicontrol('parent',h0,'style','radiobutton','string','daizu','position',[200 150 80 20],...
'callback',...
['set(k1,''value'',1);,',...
'set(k2,''value'',0);,',...
'set(k3,''value'',0);,',...
'set(k4,''value'',0);,',...
'[b,a]=butter(N,wn,''stop'');,',...
'freqz(b,a);']);
k2=uicontrol('parent',h0,'style','radiobutton','string','daitong','position',[200 120 80 20],...
'callback',...
['set(k2,''value'',1);,',...
'set(k1,''value'',0);,',...
'set(k3,''value'',0);,',...
'set(k4,''value'',0);,',...
'[b,a]=butter(N,wn,''bandpass'');,',...
'freqz(b,a);']);
k3=uicontrol('parent',h0,'style','radiobutton','string','ditong','position',[200 90 80 20],...
'callback',...
['set(k3,''value'',1);,',...
'set(k1,''value'',0);,',...
'set(k2,''value'',0);,',...
'set(k4,''value'',0);,',...
'[b,a]=butter(N,wn1,''low'');,',...
'freqz(b,a);']);
k4=uicontrol('parent',h0,'style','radiobutton','string','gaotong','position',[200 60 80 20],...
'callback',...
['set(k4,''value'',1);,',...
'set(k1,''value'',0);,',...
'set(k2,''value'',0);,',...
'set(k3,''value'',0);,',...
'[b,a]=butter(N,wn1,''high'');,',...
'freqz(b,a);']);

编了一个,但是不知道为什么选完一次作图,再选择另一次时弹出的图形会把四个单选钮也覆盖掉?就是单选钮不见了的感觉。
请高手帮忙看一下,谢谢!!

#8
Genial2006-05-21 11:40
不能够直接调用freqz作图,需要采用[h,f]=freqz(a,b)的形式,得到数据,然后自己绘制。具体的你可以用edit freqz参考它的源代码,但它为了完备性,通常加了很多其他的代码,有些墉余的感觉。自己读读这些代码还是有好处。
#9
mchen2006-05-26 22:20
那有例子下载?
1