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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
如题:程序如下  C1 P: R  o9 K( u
function exm1151_1( )& z0 R9 _0 Z- ~2 D. O4 W
global hedit hpop hlist
+ t- W7 s$ Q7 s+ A3 Qclf reset                                                                                                        %                                                <1>  Q( [( X! F8 e  x% P% d# y; c* q) d
set(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);%设置图形窗大小2 b4 [1 v# J/ }; i# w! @( ~6 O
set(gcf,'defaultuicontrolunits','normalized');. ?3 \. ]& e- s: y9 B
set(gcf,'defaultuicontrolfontsize',11);
2 P# z3 Q; M) Y( k3 t6 p& Qset(gcf,'defaultuicontrolfontname','隶书');
' L2 R% l! [9 C0 K2 Qset(gcf,'defaultuicontrolhorizontal','left');
$ y0 Z( ^) o  A7 Rset(gcf,'menubar','none');                                                                %删除图形窗工具条2 k5 O" L2 v3 Z# I6 F" g. y
str='通过多行指令绘图的交互界面';
! P& d/ v5 Q4 o8 W* xset(gcf,'name',str,'numbertitle','off');                                %书写图形窗名
5 W0 y5 h9 `" h# i6 N' u9 Dh_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');%定义轴位框位置  
; k/ q% m0 u* I( Y6 U3 [9 Kuicontrol(gcf,'Style','text',...                                                %制作静态文本框
3 g1 ~  e+ Y& h$ S8 j# J   'position',[0.52,0.87,0.26,0.1],...5 Y3 S+ e2 Q. h6 o5 @! e
   'String','绘图指令输入框');
: r/ Y- t- V! X, T+ A4 Hhedit=uicontrol(gcf,'Style','edit',...                                %制作可编辑文本框                <14>
/ m& a/ c- Z, B7 ~   'position',[0.52,0.05,0.26,0.8],...
4 q8 f. E' B4 q! t   'Max',2);                                                        %取2,使Max-Min>1,而允许多行输入                <16>
0 x; {7 K; b% i! D7 h9 o& hhpop=uicontrol(gcf,'style','popup',...                                %制作弹出菜单                        <17>
, [/ [. T' Q% X7 H. s   'position',[0.8,0.73,0.18,0.12],...
6 v. ]4 h% Y7 ?% ?   'string','spring|summer|autumn|winter');%设置弹出框中选项名                        <19>
9 O0 T2 t, _6 Whlist=uicontrol(gcf,'Style','list',...                                %制作列表框                        <20>
5 r! S$ X8 @; u   'position',[0.8,0.23,0.18,0.37],...
( }7 {" j# |# G2 h   'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名        <22>
. R; s6 Q' _6 i$ w% D. C7 Y   'Max',2);                                                        %取2,使Max-Min>1,而允许多项选择                <23># G, \. t' z3 D+ ?  A
hpush=uicontrol(gcf,'Style','push',...        %制作与列表框配用的按键                        <24>: e& x# m" S# y7 E: C
   'position',[0.8,0.05,0.18,0.15],'string','Apply');%                        <25>
" \+ ^, I" X% ~# lset(hedit,'callback','calledit1');        %编辑框输入引起回调        <26>
+ E# n6 w  A0 M& cset(hpop,'callback','calledit1');        %弹出框选择引起回调        <27>1 ?! k$ n! `; }: B6 I: P2 _
set(hpush,'callback','calledit1');        %按键引起的回调                <28>3 i5 r4 _# U6 t; s% Y
function calledit1( )
, B1 C2 g: r8 Z: p7 t! A% uglobal hedit hpop hlist
1 W: T4 v- x+ s$ act=get(hedit,'string');                                %获得输入的字符串函数                                        <2>4 X# w9 }! z9 L6 C
vpop=get(hpop,'value');                                %获得选项的位置标识                                                <3>1 S  C% b. c# q' ^+ f$ r* R
vlist=get(hlist,'value');                        %获得选项位置向量                                                        <4>% Q) W6 \: o2 f' I* }/ Z" R7 q( q
if ~isempty(ct)                                                %可编辑框输入非空时                                                <5>
" W7 a5 o& G' J6 N* ~# W# e   eval(ct')                                                        %运行从编辑文本框送入的指令                                <6>       : C) p' o2 b- ?
   popstr={'spring','summer','autumn','winter'};                %弹出框色图矩阵        <7>
# O5 I- M! Q3 N0 v: E" ?   liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容        <8>       . U! i  ~: h8 A0 W
   invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令        <9>
  J: B8 E5 ?1 X  c* Q5 k   colormap(eval(popstr{vpop}))                %采用弹出框所选色图                                        <10>& |2 Z1 H& t( D$ x8 i
   vv=zeros(1,4);vv(vlist)=1;               ! q" Q* b; q1 P, C2 m% {0 T; H
   for k=1:4
, W) W) V* y- a# P      if vv(k);eval(liststr{k});else eval(invstr{k});end %按列表选项影响图形- ]& Z" W8 e" H" O
   end
- h& F; @& ?! [end) x! N+ h# U2 v
《掌握和精通matlab之gui》的代码,) x4 Y' ^2 C0 n1 N
可是按照此书上的例子运行出现:Undefined function or variable 'calledit1'. Error while evaluating UIControl Callback
/ E0 P# |( U( |+ r6 A% J% I9 t' \. e6 }' R/ D8 g
书上的例子出的图
! {9 y% G8 m5 \& f3 r7 f, k1 a
请教大神,非常感谢!
4 i; G, s5 B4 H0 r2 ]+ C4 [; y+ C
% V4 W: Y/ e. m- `% q( I" q2 |: p, k: H8 y) z$ ]

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-7-26 21:38 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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