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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如题:程序如下
: O9 j; N' j  Y7 yfunction exm1151_1( )' f; Y4 p2 N0 s- b/ G7 C4 z
global hedit hpop hlist
& B1 ]- e( I- lclf reset                                                                                                        %                                                <1>2 b  F( e4 V) L
set(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);%设置图形窗大小5 R( I. ?3 a: g5 O6 @. G0 |$ ?
set(gcf,'defaultuicontrolunits','normalized');
6 T6 j( W, ^, Q8 _set(gcf,'defaultuicontrolfontsize',11);
$ o3 s: g8 D9 Y1 |set(gcf,'defaultuicontrolfontname','隶书');
7 C7 i3 W0 S: m- j, G7 t1 N: ~set(gcf,'defaultuicontrolhorizontal','left');
( r' Z. k" j  @$ y9 x5 h/ B* p5 lset(gcf,'menubar','none');                                                                %删除图形窗工具条' b' b% ?; _2 G) {1 _6 [. T
str='通过多行指令绘图的交互界面';
( r4 P& ?$ U! D9 kset(gcf,'name',str,'numbertitle','off');                                %书写图形窗名/ ?# t3 J- q. V8 j( X
h_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');%定义轴位框位置  
  l3 L9 F' r) x% ?uicontrol(gcf,'Style','text',...                                                %制作静态文本框$ X) |) v( H8 a1 V2 \0 \! ~' {4 u/ }
   'position',[0.52,0.87,0.26,0.1],...
7 f8 D" N$ @: V" }5 {   'String','绘图指令输入框');
6 z3 \0 M6 w5 s) ~% {! ^5 D) Ihedit=uicontrol(gcf,'Style','edit',...                                %制作可编辑文本框                <14>
8 S" \% g8 k0 O; z7 V) v; R" Y   'position',[0.52,0.05,0.26,0.8],...
+ f  q6 L2 Q2 p+ y1 p8 e   'Max',2);                                                        %取2,使Max-Min>1,而允许多行输入                <16>" y+ v$ a0 e1 @( K5 Z
hpop=uicontrol(gcf,'style','popup',...                                %制作弹出菜单                        <17>
* H# g, f2 U$ u! m& F   'position',[0.8,0.73,0.18,0.12],...8 X# h  a* n' r: P) a2 n. J% M- p
   'string','spring|summer|autumn|winter');%设置弹出框中选项名                        <19>
; e5 T$ m6 }4 j" Yhlist=uicontrol(gcf,'Style','list',...                                %制作列表框                        <20>  `) a3 G) b# B3 c' `
   'position',[0.8,0.23,0.18,0.37],...6 g  N6 @4 M7 z( U9 [; w6 |5 U% I0 f
   'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名        <22>
. E9 B2 V# l/ T* x- D# g   'Max',2);                                                        %取2,使Max-Min>1,而允许多项选择                <23>( c! ?" v" r3 `
hpush=uicontrol(gcf,'Style','push',...        %制作与列表框配用的按键                        <24>9 Q% v( b! E# n1 H5 i# B
   'position',[0.8,0.05,0.18,0.15],'string','Apply');%                        <25>9 Y5 m/ Z+ @2 k4 q/ [) L2 Y+ B
set(hedit,'callback','calledit1');        %编辑框输入引起回调        <26>
0 N+ ?0 ^/ S  D7 Z  t8 P4 v( q, Z' wset(hpop,'callback','calledit1');        %弹出框选择引起回调        <27>) }4 G/ J8 Z# A& H
set(hpush,'callback','calledit1');        %按键引起的回调                <28>
/ W) s8 n$ k$ J$ @7 ~; Lfunction calledit1( )+ d; B* l: A+ L7 F
global hedit hpop hlist" {, V; H5 G- f! X. B
ct=get(hedit,'string');                                %获得输入的字符串函数                                        <2>8 {- N1 y( J) E( s! N. s" j
vpop=get(hpop,'value');                                %获得选项的位置标识                                                <3>
& s' o7 a2 i6 T% D8 Z" e8 q! c- yvlist=get(hlist,'value');                        %获得选项位置向量                                                        <4>: s& o' I1 i# H( ]1 V
if ~isempty(ct)                                                %可编辑框输入非空时                                                <5>- n" e( g& |8 l
   eval(ct')                                                        %运行从编辑文本框送入的指令                                <6>      
1 J. i% H. |- R. }' D   popstr={'spring','summer','autumn','winter'};                %弹出框色图矩阵        <7>  \2 q- _9 `, W/ G7 E: ^  G; z8 L
   liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容        <8>         A# ^$ n2 [. E' x5 n/ h
   invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令        <9>
7 h( C, I0 q% n5 O   colormap(eval(popstr{vpop}))                %采用弹出框所选色图                                        <10>
8 k  G( u, c- x- _; d   vv=zeros(1,4);vv(vlist)=1;               1 N. g' H; Q2 D9 [# @8 Z6 \+ z0 J" y
   for k=1:4" d* x; e" t4 O% y! w/ q9 p  h
      if vv(k);eval(liststr{k});else eval(invstr{k});end %按列表选项影响图形
8 G- y/ I$ _; ]  l. F5 z: Q1 M# S   end. v) T0 I) W" f
end! A7 f7 m3 Z3 O! L
《掌握和精通matlab之gui》的代码,
( t! h6 ?# ]0 J可是按照此书上的例子运行出现:Undefined function or variable 'calledit1'. Error while evaluating UIControl Callback
( v) Z( Q) A0 \
' d- \$ q3 B& W8 j; A
书上的例子出的图

! `; s5 x0 j5 l) K" K; ], j" |2 E* y请教大神,非常感谢!# M( }1 Z8 i' \: z
! Q3 l5 v) o8 K& m; a
" T0 v2 F) Z+ x, G0 i! A% |0 c

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 14:52 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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