¦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
- gcf: get current figure ¡]¨ú±o¥Ø«eµøµ¡¡^
- gca: get current axes ¡]¨ú±o¥Ø«e¹Ï¶b¡^
- gco: get current object ¡]¨ú±o¥Ø«eª«¥ó¡^
- gcbf: get callback figure ¡]¨ú±oµo¸¹¤ÏÀ³«ü¥O¤§µøµ¡¡^
- gcbo: get callback object ¡]¨ú±oµo¸¹¤ÏÀ³«ü¥O¤§ª«¥ó¡^
¨Ï¥Î¤Wz¤èª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¹ï¤Wz¤ÏÀ³©R¥O¡A»¡©ú¦p¤U¡G
- hObject ¥Nªí¦¹¤U©Ô¦¡¿ï³æªºª«¥ó¡A¦]¦¹value=get(hObject, 'value') §Y¬O¦¹ª«¥ó³Q¿ï¨ìªº¿ï¶µ¡C
- §Ų́̿ﶵªº¤£¦P¡A¨Ó¸ü¤J¤£¦PªºÁnµÀɮסGchirp.mat¡]³¾¥sÁn¡^¡Bhandel.mat¡]ºqÁn¡^¡Blaughter.mat¡]¯ºÁn¡^¡C¸ü¤JÁnµ¸ê®Æ«á¡Ay ´N¬OÁnµ¸ê®Æ¡A¦Ó Fs ¬O¹ïÀ³ªº¨ú¼ËÀW²v¡C
- ¥Ñ©ó³o¨âÓÅܼƷ|¦b¨ä¥L UI ª«¥óªº¤ÏÀ³©R¥O³Q¥Î¨ì¡A¦]¦¹§Ú̱N³o¨âÓÅܼÆÀx¦s¦b handles.y ©M handles.Fs¡A³oÓµ²ºcÅÜ¼Æ handles ¦s¦b©ó¨C¤@Ó¤ÏÀ³¨ç¦¡¡A¨ä¥Øªº§Y¬On´£¨Ñ¦b¤£¦P¤ÏÀ³¨ç¦¡¤§¶¡ªº¸ê®Æ¤¬³q¡C
- ¤@¥¹±N¸ê®Æ¥[¤J handles¡A§ÚÌ´N¥²¶·¨Ï¥Î guidata(hOject, handles) ¨Ó§ó·s¦¹ GUI ¤¶±©Ò¾Ö¦³ªº handles ÅܼơC
¹ï©ó¡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 ªº¤@өʽè¡AY¬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±on¶}³â¥z¡^¡A¬ÛÃöµe±¦p¤U¡G
¤Wz½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![]()