|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
如题:程序如下" w+ j. F9 _- Y0 J& @: M+ b
function exm1151_1( )) }) F+ H0 ?2 x1 `1 s; z
global hedit hpop hlist# @' }1 @4 e- k
clf reset % <1>$ f$ {" s4 @0 H2 D& Y
set(gcf,'unit','normalized','position',[0.1,0.4,0.85,0.35]);%设置图形窗大小3 [( A2 k @. z7 f
set(gcf,'defaultuicontrolunits','normalized');1 K3 o) j6 c- P5 m( X
set(gcf,'defaultuicontrolfontsize',11);
9 z9 v( k" j* K; kset(gcf,'defaultuicontrolfontname','隶书');, t4 B/ @" f0 l- f
set(gcf,'defaultuicontrolhorizontal','left');
# @5 x1 | |1 |8 Z* E7 N+ _set(gcf,'menubar','none'); %删除图形窗工具条
3 G2 g6 v" g" r% Z. X+ Rstr='通过多行指令绘图的交互界面';
6 ~4 d0 T. U& y1 y5 x' L& i1 F2 o* _( ~set(gcf,'name',str,'numbertitle','off'); %书写图形窗名
* M* ~! ]) B( b9 n0 r- X- l& @% Eh_axes=axes('position',[0.05,0.15,0.45,0.70],'visible','off');%定义轴位框位置
8 r# Y1 @6 L Z- Cuicontrol(gcf,'Style','text',... %制作静态文本框4 i9 }7 U0 F8 Z3 [7 ^
'position',[0.52,0.87,0.26,0.1],...
9 f; t: e2 _9 ^% E 'String','绘图指令输入框');* T5 s2 q* b7 O$ [
hedit=uicontrol(gcf,'Style','edit',... %制作可编辑文本框 <14>, g- P2 e8 R' l- K
'position',[0.52,0.05,0.26,0.8],.... Q, Z- {+ |1 t. Y% j
'Max',2); %取2,使Max-Min>1,而允许多行输入 <16>
! Y0 M$ G, u! O* b! I" {hpop=uicontrol(gcf,'style','popup',... %制作弹出菜单 <17>
3 E( O0 A1 i) \. G4 G; V; n' _3 M% J 'position',[0.8,0.73,0.18,0.12],...6 s% t( I" Y \) U2 ~
'string','spring|summer|autumn|winter');%设置弹出框中选项名 <19>/ P3 ]* O+ ~8 F& X: i
hlist=uicontrol(gcf,'Style','list',... %制作列表框 <20># b8 x# E8 G. v4 i1 u4 v. X4 ~& W
'position',[0.8,0.23,0.18,0.37],...
% Z8 |) Z: I ~1 ~6 o: s" _5 c" n 'string','Grid on|Box on|Hidden off|Axis off',...%设置列表框中选项名 <22>% l( S$ r& J0 \
'Max',2); %取2,使Max-Min>1,而允许多项选择 <23>1 D# V7 B6 s, ~8 X5 r" J& q
hpush=uicontrol(gcf,'Style','push',... %制作与列表框配用的按键 <24>) K0 J, c" b5 A/ d1 f' `
'position',[0.8,0.05,0.18,0.15],'string','Apply');% <25>4 `9 \4 @# `; w( `; e) k
set(hedit,'callback','calledit1'); %编辑框输入引起回调 <26>
" @$ }2 ^+ x5 A: s# ~7 h# Iset(hpop,'callback','calledit1'); %弹出框选择引起回调 <27>
' K2 H$ w' g" y3 ]set(hpush,'callback','calledit1'); %按键引起的回调 <28>
. q9 q. P# z" K6 y& D+ Q dfunction calledit1( )
' x) f# C' `8 n2 Gglobal hedit hpop hlist3 _ N4 V3 z( ?9 T
ct=get(hedit,'string'); %获得输入的字符串函数 <2>. t6 }, T( F% |7 _
vpop=get(hpop,'value'); %获得选项的位置标识 <3>0 S: u/ {# z0 ~1 @; ]- y, z
vlist=get(hlist,'value'); %获得选项位置向量 <4>: m |: a8 u, i
if ~isempty(ct) %可编辑框输入非空时 <5>
7 _& ]( b$ F! B; m eval(ct') %运行从编辑文本框送入的指令 <6> " Y, ^9 Z K6 Q/ |/ F
popstr={'spring','summer','autumn','winter'}; %弹出框色图矩阵 <7>
$ q1 F- M/ ]0 e- D0 l liststr={'grid on','box on','hidden off','axis off'};%列表框选项内容 <8>
( X1 Q9 G# s: a# ^ h N( ]9 u1 e invstr={'grid off','box off','hidden on','axis on'};%列表框的逆指令 <9>
3 ?3 W8 ]$ x4 V1 S: D! ] colormap(eval(popstr{vpop})) %采用弹出框所选色图 <10>7 I/ y: U u& ?) S( b% ^$ p& S/ z
vv=zeros(1,4);vv(vlist)=1; 4 G* n) I- |9 t/ j# K# S1 @ ~
for k=1:4
& y! c4 D1 s5 B4 R& A if vv(k);eval(liststr{k});else eval(invstr{k});end %按列表选项影响图形
6 g: h! n0 K4 T" h5 C* s end
* U! |% Z' H# D& \) M3 Lend ^. ~- @1 w c, \# Y3 F) j9 x
《掌握和精通matlab之gui》的代码,# c, @7 b6 ~ O% W. Z8 i$ o/ o
可是按照此书上的例子运行出现:Undefined function or variable 'calledit1'. Error while evaluating UIControl Callback* J. _1 w2 A1 u- Z
+ X+ R0 ]9 o: y& J
书上的例子出的图
+ A/ Z8 A$ G; M/ R6 W. H/ ~请教大神,非常感谢!
6 ~' \# D5 G3 o" `
) N- P8 i8 y" k" X- P+ l1 }( C! J5 w) a( u6 r2 I [1 x
|
|