|
|
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
|
|