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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如题:程序如下8 S, a) L! c) l0 ?( @/ }" V
function exm1151_1( )
* S$ r5 i/ b$ P' cglobal hedit hpop hlist3 @6 k' b: N) M& p3 b1 s- x2 ~2 T2 ^
clf reset                                                                                                        %                                                <1>
; `; }3 y+ e; D, Y$ a5 sset(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);%设置图形窗大小
9 m' X- e. F0 O5 iset(gcf,'defaultuicontrolunits','normalized');
: w3 T% B' ^! I8 ^& L9 qset(gcf,'defaultuicontrolfontsize',11);6 N& ?  e9 ]  `1 @
set(gcf,'defaultuicontrolfontname','隶书');8 f/ t4 O+ w& l. l  X# S% F
set(gcf,'defaultuicontrolhorizontal','left');2 x" K& @& A8 a: J8 d. ^
set(gcf,'menubar','none');                                                                %删除图形窗工具条* F6 c4 X, K. S- e2 I% M! e4 k
str='通过多行指令绘图的交互界面';
$ h2 Z5 s( Q3 E" @# H" \, lset(gcf,'name',str,'numbertitle','off');                                %书写图形窗名% D, i( w! ]1 t- h& o
h_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');%定义轴位框位置  
: F( F: D, U& d" m  Yuicontrol(gcf,'Style','text',...                                                %制作静态文本框! _3 s2 v  x1 ~: P5 m4 F5 q2 z
   'position',[0.52,0.87,0.26,0.1],...+ L5 n# y: K& Q8 z5 ^3 ^
   'String','绘图指令输入框');
4 a3 u  t2 }9 H. T1 X8 fhedit=uicontrol(gcf,'Style','edit',...                                %制作可编辑文本框                <14>
  m0 N% c% |5 D0 D   'position',[0.52,0.05,0.26,0.8],...
. @1 I( @/ [. |% ~   'Max',2);                                                        %取2,使Max-Min>1,而允许多行输入                <16>3 k8 b$ y, {7 d
hpop=uicontrol(gcf,'style','popup',...                                %制作弹出菜单                        <17>( J  T% J. r" G$ r9 ^9 }
   'position',[0.8,0.73,0.18,0.12],...: s* `( X6 N6 Q* g# G6 N) o
   'string','spring|summer|autumn|winter');%设置弹出框中选项名                        <19>: i' n: @* m  G- n$ \
hlist=uicontrol(gcf,'Style','list',...                                %制作列表框                        <20>4 k! C1 A# F" c& S% }
   'position',[0.8,0.23,0.18,0.37],.../ N  |8 g. ?7 I" i: D- S. l0 `( h
   'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名        <22>8 u" \  |# l2 K) w5 Q7 f4 i7 P4 j
   'Max',2);                                                        %取2,使Max-Min>1,而允许多项选择                <23>
5 T" A/ Z2 g/ N+ w! F( {hpush=uicontrol(gcf,'Style','push',...        %制作与列表框配用的按键                        <24>
* l  F( V- N2 R3 y+ p, X1 P3 U$ x: |   'position',[0.8,0.05,0.18,0.15],'string','Apply');%                        <25>
& N9 b6 p, S% M; G- F0 {- s- Y  `set(hedit,'callback','calledit1');        %编辑框输入引起回调        <26>" B' A" e; T2 a$ h$ Z$ v& l
set(hpop,'callback','calledit1');        %弹出框选择引起回调        <27>1 J  d" Q. w% h' t' T
set(hpush,'callback','calledit1');        %按键引起的回调                <28>
: y1 b5 L0 u& l; P- D8 X9 h# z- Afunction calledit1( )
! ^, t# P0 w+ ^* g. @' Rglobal hedit hpop hlist
, K8 K" E$ e% {& j0 @8 nct=get(hedit,'string');                                %获得输入的字符串函数                                        <2>
# _, Z' ~0 H* r/ c. t6 mvpop=get(hpop,'value');                                %获得选项的位置标识                                                <3>
* O; J4 M. h7 H7 svlist=get(hlist,'value');                        %获得选项位置向量                                                        <4>% Y; Q' G# `1 I1 a3 {
if ~isempty(ct)                                                %可编辑框输入非空时                                                <5>4 Z" x6 ]. L% e- _3 Q3 w0 `
   eval(ct')                                                        %运行从编辑文本框送入的指令                                <6>       5 }7 y- y1 i, G8 p+ x+ S; z
   popstr={'spring','summer','autumn','winter'};                %弹出框色图矩阵        <7>
4 d0 w0 M% N% P; P$ l   liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容        <8>       + |* _& s- G6 ]$ A8 b
   invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令        <9>
4 @9 ~5 V9 f* x$ I) E: y8 m   colormap(eval(popstr{vpop}))                %采用弹出框所选色图                                        <10>
  A0 V5 E  i6 U2 b  V1 |   vv=zeros(1,4);vv(vlist)=1;               
9 a4 O" V2 ?2 Z% |( M   for k=1:4
( Q& m" m# Y; X; g( E/ g4 X0 s2 `      if vv(k);eval(liststr{k});else eval(invstr{k});end %按列表选项影响图形
3 B1 A1 x( f+ p1 L% J5 E. p: _$ F   end
1 F/ d0 G0 s5 l( i$ b- wend0 V8 r. Z- N; Z3 C, d+ o2 y
《掌握和精通matlab之gui》的代码,% j" W& r2 f9 @  h9 F' I: f
可是按照此书上的例子运行出现:Undefined function or variable 'calledit1'. Error while evaluating UIControl Callback
- c1 H- e  B+ e
( E. b9 Y! F8 v  C6 n, I
书上的例子出的图
/ Y+ o, ]" G0 n% G  b
请教大神,非常感谢!
% D: `1 H, v) \: c3 F  M
8 j; g/ }, W* g4 u' o9 |5 [5 j$ J9 U0 |

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-24 16:41 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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