|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如题:程序如下
; b/ \/ _& i& N( ffunction exm1151_1( )
2 ~' V- ~3 I; u! w3 o( x i- {' Cglobal hedit hpop hlist. f8 p. _ O: V4 m% m: Z# Q
clf reset % <1>
) D6 y3 Z% k' J* {% xset(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);%设置图形窗大小
! O( O) W! m4 w& |) v) L$ [set(gcf,'defaultuicontrolunits','normalized');
; q6 K0 o# R6 t0 sset(gcf,'defaultuicontrolfontsize',11);. ~: T6 ^: @& C3 T C# s
set(gcf,'defaultuicontrolfontname','隶书');
& d& Q# r# w- y) `: K: v9 Iset(gcf,'defaultuicontrolhorizontal','left');
. y! ^! \" J& P& Gset(gcf,'menubar','none'); %删除图形窗工具条
) P/ }- O R# Cstr='通过多行指令绘图的交互界面';, W( s1 W" C0 ?1 `
set(gcf,'name',str,'numbertitle','off'); %书写图形窗名
5 S* s) s. F6 n8 W* `: uh_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');%定义轴位框位置
/ _6 B5 D6 c) A4 U3 auicontrol(gcf,'Style','text',... %制作静态文本框7 C. {* a' L, `4 e
'position',[0.52,0.87,0.26,0.1],...
! B& O# i# U/ h* m9 z/ X$ t 'String','绘图指令输入框');" K7 V' R' Z# y8 U& I. V9 \9 U
hedit=uicontrol(gcf,'Style','edit',... %制作可编辑文本框 <14>6 t1 x3 L& K1 @" F7 |
'position',[0.52,0.05,0.26,0.8],...
- s: s5 P% K2 S3 P, G 'Max',2); %取2,使Max-Min>1,而允许多行输入 <16>, g, w& i1 i6 E/ ^# J: }
hpop=uicontrol(gcf,'style','popup',... %制作弹出菜单 <17>/ Z" ^/ \- }/ _6 ^
'position',[0.8,0.73,0.18,0.12],...
+ B1 o3 `# g5 w) ] 'string','spring|summer|autumn|winter');%设置弹出框中选项名 <19>7 i& z D& C+ K
hlist=uicontrol(gcf,'Style','list',... %制作列表框 <20>7 }# u3 h3 i8 x* H9 t
'position',[0.8,0.23,0.18,0.37],...
& r% B7 l$ ]& J0 j0 E1 O# [# s 'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名 <22>+ l1 B& R0 [0 Y1 U
'Max',2); %取2,使Max-Min>1,而允许多项选择 <23>
8 j: ?$ ~2 L+ L& Hhpush=uicontrol(gcf,'Style','push',... %制作与列表框配用的按键 <24>
n- C* Q; e( ~0 o! d% [' ` 'position',[0.8,0.05,0.18,0.15],'string','Apply');% <25>
7 I& [+ d a% ~: X% Bset(hedit,'callback','calledit1'); %编辑框输入引起回调 <26>
+ Q; f9 |6 \, w: vset(hpop,'callback','calledit1'); %弹出框选择引起回调 <27>
$ ?9 Y2 c/ r/ _3 Uset(hpush,'callback','calledit1'); %按键引起的回调 <28>( ^$ W+ b# n, T5 a1 M
function calledit1( )
- ~! ]$ Z4 P8 h2 n1 nglobal hedit hpop hlist
- z+ z* k% C8 R& d3 b4 T _ct=get(hedit,'string'); %获得输入的字符串函数 <2>: p, l' _1 u, s* |2 O% }
vpop=get(hpop,'value'); %获得选项的位置标识 <3>2 q0 H4 @6 w# s2 |2 K
vlist=get(hlist,'value'); %获得选项位置向量 <4>
# M# g& @" [! s) {/ R- j+ w* vif ~isempty(ct) %可编辑框输入非空时 <5>
* J4 y" U" D5 g eval(ct') %运行从编辑文本框送入的指令 <6>
: T" b! I2 l! R j popstr={'spring','summer','autumn','winter'}; %弹出框色图矩阵 <7>
8 H; ~4 [# a/ K; S2 g: a7 i/ f9 B* J liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容 <8>
, J/ _6 ~3 W+ n( n% g& @" x1 r invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令 <9>
$ A7 _) d, B* x3 B/ o colormap(eval(popstr{vpop})) %采用弹出框所选色图 <10>. E* Q$ t; s% J' f* o9 i5 a* `
vv=zeros(1,4);vv(vlist)=1;
" ]: h. q& H6 S for k=1:47 a$ X+ U' ` E3 G2 j& r
if vv(k);eval(liststr{k});else eval(invstr{k});end %按列表选项影响图形4 T7 C, X+ T: k/ ^1 k
end) `/ J8 ~; I- Z" q
end$ i0 U) I% ]3 K0 e8 K% ]8 S
《掌握和精通matlab之gui》的代码,3 A; O- Y+ ?( b! R4 C" l2 h
可是按照此书上的例子运行出现:Undefined function or variable 'calledit1'. Error while evaluating UIControl Callback# F% W( O9 i. o% ^* p# j2 S
: u) `, R! q, B
书上的例子出的图
1 A ~9 D& P! e
请教大神,非常感谢!
# [* t. p3 A- \0 x( _. U
. j1 i1 O+ C- M3 w3 e! x9 [; g& g- @ B l( Z7 L4 K: d. s
|
|