6-3 �H����覡���Ͱʵe

¥H¹q¼v¤è¦¡²£¥Í°Êµe¥i¥H»¡¬O¡u¼É¤Oªk¡v¡A¦]¬°¦¹¤èªk¦û±¼¤F³\¦h°O¾ÐÅéªÅ¶¡¡C¥t¤@­Ó§Þ¥©©Ê¸û°ªªº¤èªk«h¬O¥Hª«¥ó¤è¦¡²£¥Í°Êµe¡A¦¹ºØ¤èªk¤£»Ý­n¤j¶qªº°O¾ÐÅé¡A¦Ó¥B¥i¥H²£¥Í¡u§Y®É¡v¡]Real-time¡^©Î¡u¤¬°Ê¦¡¡v¡]Interactive¡^ªº°Êµe¡C

MATLAB ªº©Ò¦³¹Ï§Î¤¸¥ó¡]¦±½u¡B¦±­±¡B¹Ï¶bµ¥¡^³£¬Oª«¥ó¡A±z¥i¥H±±¨î³o¨Çª«¥óªº¦UºØ©Ê½è¡A¦¹ºØ¯S©ÊºÙ¬°¡u´¤§â¦¡¹Ï§Î¡v¡]Handle Graphics¡^¡A¥i¸Ô¨£²Ä¤C³¹¡C´¤§â¦¡¹Ï§Î¥]§tªº¼h­±«Ü¼s¡A¦ý²o¯A¨ì°Êµe³¡¥÷ªº°ò¥»·§©À¨Ã¤£½ÆÂø¡A¥H¤U§Ú­Ì¥H¦±½uªº°Êµe¨Ó»¡©ú¡C

¨C¤@±ø¦±½u³£¦³¤U¦C¤TºØ©Ê½è¡G

  1. xdata¡G¦¹¬°¤@¦V¶q¡A¥Nªí¦±½uªº x ®y¼Ð­È
  2. ydata¡G¦¹¬°¤@¦V¶q¡A¥Nªí¦±½uªº y ®y¼Ð­È
  3. EraseMode¡G¦¹¬°¤@¦r¦ê¡A¥Nªí¦±½u³Q©Ù°£ªº¤è¦¡¡A¥ç§Y·í xdata ©Î ydata ³Q§ïÅܮɡA¹ï©ó¦±½uªº³B²z¤è¦¡¡C

EraseMode ¹ï©ó°Êµeªº§e²{¬Û·í­«­n¡A¦¹¦r¦ê¥i¬O¤U¦C´XºØ¿ï¾Ü¡G

¦b¤W­z¥|ºØ EraseMode ¤¤¡A¯Ó¶O®É¶¡ªº¦¸§Ç¬O

normal > xor > background > none

xor ©M background «Ü±µªñ¡A¦ý¬O background ·|©Ù¥h¨ä¥L¦±½u©Ò±½¹Lªº¨ä¥Lª«¥ó¡]¦p¹Ï¶b¡B®æ½u¡B¥t¤@±ø¦±½uµ¥¡^¡A©Ò¥H¸û¤Ö¥Î¨ì¡A©Ò¥H¤@¯ë¦b²£¥Í°Êµe®É¡A³Ì±`¥Î¨ìªº EraseMode ´N¬O xor¡C

¦³¤F³o¨Ç·§©À«á¡A²£¥Í°Êµe´N«Ü®e©ö¤F¡I¨ä¥D­n¨BÆJ¦³¨âÂI¡G

  1. ²£¥Í¤@±ø¦±½u¡A¨ä EraseMode ¬° xor¡Abackground¡A©Î none¡C
  2. ¦b for-loop ¤§¤¤¡A§ïÅܦ¹¦±½uªº xdata ©Î ydata¡]©Î¨âªÌ¡^¡C
¦b¥H¤Uªº¨Ò¤l¤¤¡A§Ú­Ì²£¥Í¤@±øÀH x ¦Ó°I´îªº¥¿©¶¦±½u $$ y=sin(x+k)e^{x/5} $$

¨ÃÅý k ÀH®É¶¡¦Ó«K¤j¡]§Y§ïÅÜ¥¿©¶ªiªº¬Û¨¤¡^¡A¨Ï¾ã±ø¦±½u²£¥Í»R°Êªº®ÄªG¡Cµ{¦¡½X¦p¤U¡G

Example 1: 06-°Êµe»s§@/movie04.mx = 0:0.1:8*pi; h = plot(x, sin(x).*exp(-x/5), 'EraseMode', 'xor'); axis([-inf inf -1 1]); % ³]©w¹Ï¶bªº½d³ò grid on % µe¥X®æ½u tic for i = 1:5000 y = sin(x-i/50).*exp(-x/5); set(h, 'ydata', y); % ³]©w·sªº y ®y¼Ð drawnow % ¥ß§Y§@¹Ï end toc[Warning: The EraseMode property is no longer supported and will error in a future release. Use the ANIMATEDLINE function for animating lines and points instead of EraseMode 'none'. Removing instances of EraseMode set to 'normal', 'xor', and 'background' has minimal impact.] [> In <a href="matlab:matlab.internal.language.introspective.errorDocCallback('movie04', 'd:\users\jang\books\matlabPRogramming4beginner\example\06-°Êµe»s§@\movie04.m', 2)" style="font-weight:bold">movie04</a> (<a href="matlab: opentoline('d:\users\jang\books\matlabPRogramming4beginner\example\06-°Êµe»s§@\movie04.m',2,0)">line 2</a>) In <a href="matlab:matlab.internal.language.introspective.errorDocCallback('goWriteOutputFile>dummyFunction', 'd:\users\jang\books\goWriteOutputFile.m', 85)" style="font-weight:bold">goWriteOutputFile>dummyFunction</a> (<a href="matlab: opentoline('d:\users\jang\books\goWriteOutputFile.m',85,0)">line 85</a>) In <a href="matlab:matlab.internal.language.introspective.errorDocCallback('goWriteOutputFile', 'd:\users\jang\books\goWriteOutputFile.m', 55)" style="font-weight:bold">goWriteOutputFile</a> (<a href="matlab: opentoline('d:\users\jang\books\goWriteOutputFile.m',55,0)">line 55</a>)] [Warning: The EraseMode property is no longer supported and will error in a future release. Use the ANIMATEDLINE function for animating lines and points instead of EraseMode 'none'. Removing instances of EraseMode set to 'normal', 'xor', and 'background' has minimal impact.] [> In <a href="matlab:matlab.internal.language.introspective.errorDocCallback('movie04', 'd:\users\jang\books\matlabPRogramming4beginner\example\06-°Êµe»s§@\movie04.m', 2)" style="font-weight:bold">movie04</a> (<a href="matlab: opentoline('d:\users\jang\books\matlabPRogramming4beginner\example\06-°Êµe»s§@\movie04.m',2,0)">line 2</a>) In <a href="matlab:matlab.internal.language.introspective.errorDocCallback('goWriteOutputFile>dummyFunction', 'd:\users\jang\books\goWriteOutputFile.m', 85)" style="font-weight:bold">goWriteOutputFile>dummyFunction</a> (<a href="matlab: opentoline('d:\users\jang\books\goWriteOutputFile.m',85,0)">line 85</a>) In <a href="matlab:matlab.internal.language.introspective.errorDocCallback('goWriteOutputFile', 'd:\users\jang\books\goWriteOutputFile.m', 55)" style="font-weight:bold">goWriteOutputFile</a> (<a href="matlab: opentoline('d:\users\jang\books\goWriteOutputFile.m',55,0)">line 55</a>)] Elapsed time is 20.510184 seconds.

¡]¤W¹Ï¥u¨q¥X³Ì«á¤@­Ó frame ªºµe­±¡C¡^¦b¤W¨Ò¤¤¡A§Ú­Ì¨Ï¥Î set «ü¥O¡AÁ`¦@§ïÅܦ±½uªº y ®y¼Ð 5000 ¦¸¡A¨Ã¥H xor ªº¤è¦¡©Ù±¼Â¦±½u¡C¨ä¤¤ drawnow ªº§@¥Î¬O¨Ï MATLAB ¥ß¨è³B²z set «ü¥O¡A­YµL drawnow¡AMATLAB ·|²Ö¿n set «ü¥O¡Aª½¨ì for-loop µ²§ô®É¦A¤@¨Ö³B²z¹Ï§ÎªºÅܤơA³o®É´N¤£·|¬Ý¨ì°Êµeªº®ÄªG¡C

¦pªG±z±N¤W¨Òªº EraseMode §ï¦¨ background¡A«h·|µo²{¦±½u·|¡§¦Y±¼¡¨¹Ï§Î¤¤ªº®æ½u¤Î¥Nªí¹Ï¶bªºª½½u¡A½Ð¸Õ¸Õ¬Ý¡I

¦pªG±z±N¤W¨Òªº EraseMode §ï¦¨ none¡A«hªº¦±½u·|³Q«O¯d¤U¨Ó¡A²£¥Í¤£¦Pªº®ÄªG¡A½Ð¸Õ¸Õ¬Ý¡I¡]­Y­n¦L¥X¦¹ºØ¹Ï§Î¡A½Ð°O±o¦b print «ü¥O¥[¤W ¡Vzbuffer ªº¿ï¶µ¡C¡^

¦³Ãö©ó¥Hª«¥ó¤è¦¡§e²{°Êµeªº¨Ò¤l¬Û·í¦h¡AŪªÌ¥i¥H¸Õ¸Õ¤U¦C«ü¥O¡G

«ü¥O»¡©ú
lorenz ¥H3D°Êµe§e²{ªº Lorenz ²V¨P¤èµ{¦¡¡]Chaotic Equation¡^¡A¦n¹³¼z¬P¦b¹B¦æ¡C
truss ¤@®y¾ô¼Ù¦b¦a¾_®Éªº¾_°Ê¤è¦¡¡A¦@¦³ 12 ºØ³á¡I
travel Åã¥Ü¦p¦ó¥HÂø¶Ã·j´M¡]Random Search¡^ªº¤è¦¡¨Ó¸Ñ Traveling Salesperson Problem.
fitdemo Åã¥Ü¦p¦ó¥H Downhill Simplex Search ¨Ó¸Ñ¨M«D½u©Ê¦±½uÀÀ¦X¡]Nonlinear Curve Fitting¡^ªº°ÝÃD¡C
spinner ±`¨£ªº¿Ã¹õ«OÅ@µ{¦¡¡C
xphide ¸Õ¸Õ±zªº²´¤O¡K¡C

­Y±z¦³¦w¸Ë Simulink¡A¥i¸Õ¸Õ¤U¦C°ÊºA¨t²Î¼ÒÀÀ¥[¤W°Êµe§e²{¡G

«ü¥O»¡©ú
onecart ¶Ç²Îªº¼u®¥[¤W¯|½Xªº°ÊºA¨t²Î¡C
dblcart1 ¤@±ø¼u®¥[¤W¨â­Ó¯|½Xªº°ÊºA¨t²Î¡C
simppend ²³æªº³æÂ\¨t²Î¡C
dblpend1 ¨âºIªºÂ\°Ê¨t²Î¡C
dblpend2 §ó½ÆÂøªºÂ\°Ê¨t²Î¡C
penddemo ­Ë³æÂ\¨t²Î¡C

¦pªG±z¦³¦w¸Ë Fuzzy Logic Toolbox¡A¥i¥H¸Õ¸Õ¥Ñµ§ªÌ¿Ë¦Û¶}µoªº¦U¶µ¼ÒÀÀ¤Î°Êµe®i¥Ü¡G

«ü¥O»¡©ú
fcmdemo Fuzzy C-means Clustering¡C
juggler ¥ÎªO¤l±µ¥Ö²y¡C
invkine ¨âºI¾÷¾¹¤âÁuªº Inverse Kinematics¡C
slcp1 ­Ë³æÂ\¡A±ì¤lªø«×ÀH®É¶¡¦ÓÅÜ¡A±z¥i¥H±±¨î©Ò±ý¨ì¹Fªº¦ì¸m¡C
slcpp1 Âù­Ë³æÂ\¡A¨ä¤¤¤@­Ó±ì¤lªºªø«×ÀH®É¶¡¦ÓÅÜ¡A±z¥i¥H±±¨î©Ò±ý¨ì¹Fªº¦ì¸m¡C
slbb ÃßÃߪO¥[¤Wºu²y¨t²Î¡A±z¥i¥H±±¨î²yªº³Ì«á¦ì¸m¡C
sltbu ­Ë¨®¤J®w¨t²Î


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