|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如题:程序如下
+ B8 Z/ u# a4 D) T& Efunction exm1151_1( )
5 M) U( n( i" l0 ?- ?' _6 yglobal hedit hpop hlist
* k: X( V$ b% a* `2 I7 Rclf reset % <1>
: B+ e. l0 n+ M. i$ Y& {7 Mset(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);%设置图形窗大小
0 o6 \7 q% G6 Q5 X" ?6 q3 _set(gcf,'defaultuicontrolunits','normalized');9 v' P: L4 ^) m5 j; `
set(gcf,'defaultuicontrolfontsize',11);
4 v4 x5 q( T, d" R& |( wset(gcf,'defaultuicontrolfontname','隶书');$ A& C0 j5 t+ A" X
set(gcf,'defaultuicontrolhorizontal','left'); @$ x: U/ p( I5 r0 O
set(gcf,'menubar','none'); %删除图形窗工具条8 V7 Y7 S) Q$ c0 Z' N1 F6 P
str='通过多行指令绘图的交互界面';; S# f n# ^, e0 r, w
set(gcf,'name',str,'numbertitle','off'); %书写图形窗名
" r$ ~9 p8 d: y3 o9 j8 E0 Mh_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');%定义轴位框位置 0 H8 M+ \0 |' p8 N% u' A }
uicontrol(gcf,'Style','text',... %制作静态文本框' G$ r6 g) B. U: L
'position',[0.52,0.87,0.26,0.1],...: k1 e7 I, z8 N: p7 |" g
'String','绘图指令输入框');
4 p1 b2 q2 H2 ? Q. y5 l$ d Jhedit=uicontrol(gcf,'Style','edit',... %制作可编辑文本框 <14>
- X3 H4 Q( f8 K) h/ a- l( \9 } 'position',[0.52,0.05,0.26,0.8],...# L. I5 Y" \# U1 d3 ~0 l: k
'Max',2); %取2,使Max-Min>1,而允许多行输入 <16>
- [3 n8 \, T) x6 phpop=uicontrol(gcf,'style','popup',... %制作弹出菜单 <17>
; ^6 s, h( M, Q( }) B6 W: s 'position',[0.8,0.73,0.18,0.12],...; v) f4 q! F) L$ w' b8 J0 n( ]
'string','spring|summer|autumn|winter');%设置弹出框中选项名 <19>) M1 |( p6 V$ x
hlist=uicontrol(gcf,'Style','list',... %制作列表框 <20>
; @, ]/ m, z0 f( O5 e( D9 } 'position',[0.8,0.23,0.18,0.37],...$ g% q4 g! C) s
'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名 <22>
. Y4 g& f" q. P& M 'Max',2); %取2,使Max-Min>1,而允许多项选择 <23>
) _( w" s. h- {0 c2 c* O1 t8 i* Shpush=uicontrol(gcf,'Style','push',... %制作与列表框配用的按键 <24>7 { @0 k, i1 \6 o8 I
'position',[0.8,0.05,0.18,0.15],'string','Apply');% <25>! D3 ~6 q4 t, D6 i' r+ A
set(hedit,'callback','calledit1'); %编辑框输入引起回调 <26>
$ m5 D1 H, B9 M0 p/ wset(hpop,'callback','calledit1'); %弹出框选择引起回调 <27>
, Q$ b' O* i" u" _1 fset(hpush,'callback','calledit1'); %按键引起的回调 <28>
& a+ v+ H6 ?0 A F Q% x$ gfunction calledit1( )
7 S8 C. h% k% X i% x* @5 Yglobal hedit hpop hlist
, k- k4 ~1 ?( |6 N( kct=get(hedit,'string'); %获得输入的字符串函数 <2>5 @+ T5 R0 ~$ s" F5 f% z, H
vpop=get(hpop,'value'); %获得选项的位置标识 <3>7 q2 _" T- H! ^- t! Z
vlist=get(hlist,'value'); %获得选项位置向量 <4>
P2 P/ W. ~# y( Bif ~isempty(ct) %可编辑框输入非空时 <5>" v' M+ w4 f) ~, D
eval(ct') %运行从编辑文本框送入的指令 <6> & G- F6 q- `7 j& O3 h+ s
popstr={'spring','summer','autumn','winter'}; %弹出框色图矩阵 <7>& Q% u4 V+ c) a/ `( V
liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容 <8> & z, I7 F7 g( D* b. B0 V, A
invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令 <9>& F/ ^/ Q+ E' C- V7 ]5 e
colormap(eval(popstr{vpop})) %采用弹出框所选色图 <10>
+ K) j; j) v7 s; s. A vv=zeros(1,4);vv(vlist)=1; 2 J% }* ~$ P3 `$ \( e+ C% O6 `
for k=1:4& Z& m! O6 L( ?1 L" ?( q/ _
if vv(k);eval(liststr{k});else eval(invstr{k});end %按列表选项影响图形6 a+ f! H3 B3 V
end
+ U" m! i/ D; S6 U- Iend
! D1 [& o. y2 ]6 Y3 u' S《掌握和精通matlab之gui》的代码,
1 Y, K0 S* u0 \6 w可是按照此书上的例子运行出现:Undefined function or variable 'calledit1'. Error while evaluating UIControl Callback3 K. V0 b% _; M9 n
. x% n8 {; j0 m3 B( C) C5 _3 q$ w书上的例子出的图
" E! M ?# Q O9 p. j
请教大神,非常感谢!
/ M0 \8 p8 |& t4 f4 E# X# j, u. o% b8 k5 y- C7 z" [
7 A! [/ Q! Y' C" D6 P
|
|