找回密码
 注册
关于网站域名变更的通知
查看: 484|回复: 1
打印 上一主题 下一主题

《掌握和精通matlab之gui》的疑问请教大神。

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-7-17 13:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
如题:程序如下
9 g, m  _; A2 ~; Q8 V- |function exm1151_1( )
: \. U; k- N& H) O/ x! Uglobal hedit hpop hlist, J6 d. ^* y! K+ C
clf reset                                                                                                        %                                                <1>
5 u9 H" W( c# g; R. eset(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);%设置图形窗大小
3 j' {3 M  K& F2 `+ T. n* C% E' [" Sset(gcf,'defaultuicontrolunits','normalized');
. C) d9 b# ?1 G( R2 F- xset(gcf,'defaultuicontrolfontsize',11);" S- D( \# G( M1 }+ N
set(gcf,'defaultuicontrolfontname','隶书');( ~" c- x( t3 b5 k, L
set(gcf,'defaultuicontrolhorizontal','left');8 z& B* u3 F% v6 G1 E4 F+ P6 t
set(gcf,'menubar','none');                                                                %删除图形窗工具条" `# I0 j8 ^" T. r: k3 _. y' A
str='通过多行指令绘图的交互界面';
% p5 ^6 k8 s% K5 {+ Fset(gcf,'name',str,'numbertitle','off');                                %书写图形窗名
/ {" A1 b) ~7 S' i2 |h_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');%定义轴位框位置  1 O& H& _9 }7 m' ~" j9 [% z
uicontrol(gcf,'Style','text',...                                                %制作静态文本框9 ?& W& ~8 }) h
   'position',[0.52,0.87,0.26,0.1],...
2 U/ M1 v. r& }  |( e) ~   'String','绘图指令输入框');# G4 y! K& v2 D4 Y" x
hedit=uicontrol(gcf,'Style','edit',...                                %制作可编辑文本框                <14>
; h6 O" n* f, f3 P) w% H& w   'position',[0.52,0.05,0.26,0.8],...* d3 C( n( n% j) S' z  w8 U
   'Max',2);                                                        %取2,使Max-Min>1,而允许多行输入                <16>
/ t2 Y2 `- l0 Qhpop=uicontrol(gcf,'style','popup',...                                %制作弹出菜单                        <17>
5 C3 d) l8 T. B+ N' t* E5 X, ^8 p   'position',[0.8,0.73,0.18,0.12],...& Y' ^% R) q' J. P) s+ c6 k( E
   'string','spring|summer|autumn|winter');%设置弹出框中选项名                        <19>! `9 k5 h7 P' W' y
hlist=uicontrol(gcf,'Style','list',...                                %制作列表框                        <20>' d& p6 y! T& s: z! q# I8 R
   'position',[0.8,0.23,0.18,0.37],...
2 d( ^' s5 p6 |) x) ?6 Q   'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名        <22># @7 D) H. D$ T% ]  K) ~1 N" _3 s# b
   'Max',2);                                                        %取2,使Max-Min>1,而允许多项选择                <23>
9 i3 |+ W& p* W' e. H2 D0 ohpush=uicontrol(gcf,'Style','push',...        %制作与列表框配用的按键                        <24>
3 `' k! p' u$ }/ i   'position',[0.8,0.05,0.18,0.15],'string','Apply');%                        <25>, H( N( f5 L( t0 e; C
set(hedit,'callback','calledit1');        %编辑框输入引起回调        <26>
+ O% m5 a% V, m  k0 d- _set(hpop,'callback','calledit1');        %弹出框选择引起回调        <27>5 n( N( _( h; p7 ?2 R+ L6 \
set(hpush,'callback','calledit1');        %按键引起的回调                <28>
4 I& t1 |4 r9 R3 J. p& N/ lfunction calledit1( )
4 o& Z  I  R' u( [5 l" q3 Wglobal hedit hpop hlist- ~6 d0 E; g6 Y% J) l' @7 B
ct=get(hedit,'string');                                %获得输入的字符串函数                                        <2>
% u. V3 x9 H8 v* A( Kvpop=get(hpop,'value');                                %获得选项的位置标识                                                <3>$ d( S1 z* H& H. K
vlist=get(hlist,'value');                        %获得选项位置向量                                                        <4>
+ p8 q, [9 I. P% U) K- V0 iif ~isempty(ct)                                                %可编辑框输入非空时                                                <5>
7 R2 x. S% L6 L2 w5 y6 S& I7 `   eval(ct')                                                        %运行从编辑文本框送入的指令                                <6>       : a) {5 E0 Q. C' j9 S4 x" h* h: k
   popstr={'spring','summer','autumn','winter'};                %弹出框色图矩阵        <7>; w2 K' d: I' @4 D/ }; j
   liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容        <8>       , r1 G# i* e' F, g6 W
   invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令        <9>, P) l. ?) T5 F8 ~& `9 c
   colormap(eval(popstr{vpop}))                %采用弹出框所选色图                                        <10>
" ^3 V1 d8 n' o5 S" h   vv=zeros(1,4);vv(vlist)=1;               $ e9 W0 `2 C1 B" g
   for k=1:4+ q. Z, J$ d; s) b7 ^4 }
      if vv(k);eval(liststr{k});else eval(invstr{k});end %按列表选项影响图形
5 P* r  @0 f$ @   end
* @: o5 S$ I) r: A1 _6 k  l7 ?end* j0 I- g  e) F4 n5 z, ^8 S' J
《掌握和精通matlab之gui》的代码,
; w, j- \/ v0 H' }0 Z3 a可是按照此书上的例子运行出现:Undefined function or variable 'calledit1'. Error while evaluating UIControl Callback0 w, I- f* W) r& \4 f4 l
+ o+ S/ `  {. t+ P, o; K0 E
书上的例子出的图

+ W  j- ^. }% ]" I- U  ?请教大神,非常感谢!; `8 t$ t& P" o4 n9 ]5 }) q
, q; L4 c* ^2 N9 P  o9 l! e: z: H* Y
* V  ~/ c6 b- o! j

该用户从未签到

2#
发表于 2020-7-17 14:41 | 只看该作者
eval(ct')    ,为什么要用单个单引号?eval(ct)或者eval(‘ct’),不可以呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 16:13 , Processed in 0.234375 second(s), 27 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表