8-4 GUIDE ���������������

¦b³o­Ó½d¨Ò¤¤¡A¨Ï¥ÎªÌ¥i¥H¨Ï¥Î¤U©Ô¦¡¿ï³æ¨Ó¿ï¨ú¤£¦PªºÁn­µÀɮסA¨ÓÅã¥Üªi§Î¡A¨Ã¥i¼½©ñÁn­µ¡C

­º¥ý¡A§Ú­Ì¥i¥HÂ\¸m¤@­Ó¹Ï¶b©M¤@¨Ç UI ±±¨îª«¥ó¡A¦p¤U¡G

±µµÛ¡A§Ú­Ì¥i¥H¨Ï¥Î·Æ¹«¥kÁä¨ÓÂI¿ï¨C¤@­Ó UI ±±¨îª«¥ó¡A¨Ã¿ï¨ú¡uInspect Properties¡v¡A¥H§ïÅܨä©Ê½è¡A¨C­Óª«¥ó©Ò§ïÅܪº©Ê½è¦p¤U¡G

§¹¦¨³o¨Ç¤u§@«á¡A¤U¤@¨B§Ú­Ì­n©w¸q¨C­Ó UI ±±¨îª«¥óªº¤ÏÀ³©R¥O¡AMATLAB ·|¦b³o¨Ç UI ±±¨îª«¥ó³QÂI¿ï®É¡A¦P®É©I¥s¨C­Óª«¥ó©Ò¹ïÀ³ªº¤ÏÀ³©R¥O¡C­º¥ý¡A§Ú­Ì¥H·Æ¹«¥kÁäÂI¿ï Close «ö¶s¡A¨Ã¿ï¨ú¡uView Callbacks/Callback¡v¡A§Y¥i¶}±Ò MATLAB µ{¦¡½s¿è¾¹¡C¡]¦pªG§A©|¥¼¦sÀÉ¡AMATLAB ·|­n¨D§A¥ý¦sÀÉ¡A¤~¯àÄ~Äò¡C§A¥i¥H±NÀÉ®×Àx¦s¦¨ myGUI03.m¡C¡^¦¹µ{¦¡½s¿è¾¹·|Åã¥Ü¤ÏÀ³©R¥O¥²¶·¥[¤Jªº¦ì¸m¡A¨Ì¥»¨Ò¦Ó¨¥¡AClose «ö¶sªº Tag ¬O closeButton¡A©Ò¥H¨ä¤ÏÀ³©R¥O¤]¥²¶·¥[¦b¨ç¼Æ closeButton_Callback ¤§¤º¡A©Ò¥[¶i¥hªº©R¥O¬O close(gcbf)¡A¦p¤U¡G

¦b³o¤@¦Cµ{¦¡½X¤¤¡Agcbf ¥Nªí²£¥Í¦¹¤ÏÀ³©R¥Oªºµøµ¡¡A¦]¦¹ close(gcbf) §Y¬O¥NªíÃö³¬¦¹ GUI ¤¶­±©Ò¦bªºµøµ¡¡C³o¤@Ãþªº«ü¥O¬Û·í¦n¥Î¡A¥i¾ã²z¦p¤U¡G

¨Ï¥Î¤W­z¤èªk¡A§Ú­Ì¥i¥H¤@¤@¥[¤J¦U UI ª«¥ó©Ò¨ã¦³ªº¤ÏÀ³©R¥O¡C¹ï©ó¤U©Ô¦¡¿ï³æ¡A§Ú­Ì¦b soundFile_Callback() ¨ç¦¡¤º©Ò¥[¤Jªºµ{¦¡½X¦p¤U¡G

value=get(hObject, 'value'); % ¨ú±o¦¹ UI ª«¥óªº¿ï¶µ switch value % ¨Ì¿ï¶µ¨Ó¸ü¤JÁn­µÀÉ case 1 load chirp.mat case 2 load handel.mat case 3 load laughter.mat end plot((1:length(y))/Fs, y); % µe¥XÁn­µªºªi§Î handles.y=y; % ¬ö¿ýÁn­µ°T¸¹ handles.Fs=Fs; % ¬ö¿ý¨ú¼ËÀW²v guidata(hObject, handles); % Àx¦s±N¥Î©ó¨ä¥L¨ç¦¡¤§ handles

°w¹ï¤W­z¤ÏÀ³©R¥O¡A»¡©ú¦p¤U¡G

¹ï©ó¡uPlay Sound¡v«ö¶s¡A§Ú­Ì¦b playButton_Callback() ¨ç¦¡¤º©Ò¥[¤Jªºµ{¦¡½X¦p¤U¡G

if isfield(handles, 'y') y=handles.y; Fs=handles.Fs; sound(y, Fs); end

´«¥y¸Ü»¡¡A§Ú­Ì¥ý¨Ï¥Î isfield(handles, 'y') ¨Ó½T»{ y ¬O¤£¬O handles ªº¤@­Ó©Ê½è¡A­Y¬O¡A¥Nªí¬ÛÃöÁn­µ¸ê®Æ¤w¸gÀx¦s¦b handles ÅܼƤº¡A¦]¦¹§Ú­Ì´N§ì¥X y ©M Fs¡A¨Ã¥Î sound(y, Fs) ¨Ó¼½©ñÁn­µ°T¸¹¡C

¥[¤J³o¨Ç¤ÏÀ³©R¥O«á¡A§Y¥iÀx¦sÀɮרÃÃö³¬ MATLAB ½s¿è¾¹¡AµM«á«ö¤U GUIDE ­±ª©ªº¤u¨ã¦Cªº¤T¨¤§Î«ö¶s¡A§Y¥i¶}±Ò¥i¨Ï¥Îªº GUI ¤¶­±¡A¦p¤U¡G

­Y¦b¤U©Ô¦¡¿ï³æ¿ï¨ú handel¡A§Y¥iµe¥X¬ÛÃöªººqÁnªi§Î¡A¦¹®É¦A«ö¤U¡uPlay Sound¡v¡A§Y¥iÅ¥¨ì°ÊÅ¥ªººqÁn¡A¡]°O±o­n¶}³â¥z¡^¡A¬ÛÃöµe­±¦p¤U¡G

¤W­z½d¨Ò¦¬¿ý¦b¥»³¹½d¨Òµ{¦¡¥Ø¿ý¤ºªº gui03.m ©M gui03.fig¡C

¦pªG§Ú­Ì§Æ±æ¤@¶}±Òµe­±¡A¹Ï¶b´N¯àÅã¥Ü chirp.mat ªº³¾Ánªi§Î¡A¨º»ò§A¥i¥Hª½±µ­×§ï myGUI_OpeningFcn()¡A¦¹¨ç¦¡¦b²£¥Í GUI µe­±¤§«á¡A´N·|³Q©I¥s¤@¦¸¡A¦]¦¹§Ú­Ì¥i¥H¦b³o­Ó¨ç¦¡¤º¡A¥ýŪ¤J chirp.mat¡AµM«á§âªi§Îµe¥X¨Ó¡A³o¼Ë´N¯àÅý chirp.mat ªºªi§Î¦b myGUI.m ³Q©I¥s«á¡A´N¯à¥ß¨èÅã¥Ü¦bµøµ¡¤º¡C¦U¦ìŪªÌ¥i¥H¸Õ¸Õ¬Ý¡I


MATLABµ{¦¡³]­p¡G¤Jªù½g