1-1 ��q�{���X���p�ɤ�k�G�����p��

MATLAB ªº tic ©M toc «ü¥O¡A¬O³Ì²³æªºµ{¦¡­p®É¤èªk¡A¥u­n±N¾ã¬qµ{¦¡½X¸m©ó³o¨â­Ó«ü¥O¤§¤¤¡AMATLAB ´N·|¦Û°Ê­pºâµ{¦¡°õ¦æ©Òªá¶Oªº®É¶¡¡C¨Ò¦p¡G¹ï©ó¤@­Óºû«× 1000¡Ñ1000 ªº¶Ã¼Æ¯x°}¡A±ý¨D±o¨ä¤Ï¯x°}ªº­pºâ®É¶¡¡A¥i¿é¤J¦p¤U¡G

Example 1: 01-µ{¦¡­p®É/tictoc01.mtic % ¶}©l­p®É z=inv(rand(1000)); % inv «ü¥O¬O¥Î¨Ó­pºâ¤Ï¯x°} toc % µ²§ô­p®ÉElapsed time is 0.190357 seconds.

¥Ñ¤W­z½d¨Ò¡A¥i¥H±oª¾MATLAB ªá¶O¦b°õ¦æ inv(rand(1000)) ­pºâªº®É¶¡¡C

Hint
  • tic ©M toc «ü¥O¦b­^¤åªº©Àªk¬OÃþ¦ü°¨¿ö«ö¤U¤Î¸õ°_ªºÁn­µ¡A¬G¨ú¦¹¦W¡A°÷¶Ç¯«§a?!
  • §@ªÌ°õ¦æ¦¹µ{¦¡©Ò¨Ï¥Îªº¹q¸£¬O Intel Core i7¡B4 GB RAM ªºµ§¹q¡A¦pªGŪªÌªº¹q¸£¤ñ§@ªÌªºµ¥¯Å§ó°ª¡A©Ò±o¨ìªº®É¶¡¥i¯à´N§óµu¤F¡I

­Y­n¨Ï¥Î¦h­Ó°¨¿ö¨Ó­p®É¡A«h¥u»Ý­n±N tic «ü©w¨ì¤@­ÓÅܼƧY¥i¡A¹ïÀ³ªº toc «ü¥O¤]¥²¶·¥Î¨ì¦¹ÅܼơA¤~¯à°O¿ý¦¹°¨¿ö©Òªáªº®É¶¡¡C¦b¤U¦C½d¨Ò¤¤¡A§Ú­Ì­pºâ inv «ü¥O¹ï¤£¦Pºû«×ªº¯x°}©Òªáªº®É¶¡¡A¨ä¤¤¥Î¤F¨â­Ó°¨¿ö¡A¤À§O­pºâÁ`®É¶¡¥H¤Î¨C­Ó¯x°}©Òªáªº®É¶¡¡G

Example 2: 01-µ{¦¡­p®É/tictoc02.mtimer1=tic; % °¨ªí¤@¶}©l­p®É n=100*(1:10); for i=1:length(n) timer2=tic; % °¨ªí¤G¶}©l­p®É z=inv(rand(n(i))); % inv «ü¥O¬O¥Î¨Ó­pºâ¤Ï¯x°} time(i)=toc(timer2); % °¨ªí¤G°±¤î­p®É end fprintf('Overall time = %f sec\n', toc(timer1)); % °¨ªí¤@°±¤î­p®É plot(n, time, '.-'); xlabel('Matrix dimensions'); ylabel('Elapsed time (in sec)');Overall time = 0.562098 sec

­Y­n¨ú±oµ´¹ï®É¶¡¡A¥i¥H¨Ï¥Î clock «ü¥O¨Ó¶Ç¦^²{¦bªº®É¶¡©Ò§Î¦¨ªº¦V¶q¡A¥]§t 6 ­Ó¤¸¯À¡A¤À§O¬O¦~¡B¤ë¡B¤é¡B®É¡B¤À¡B¬í¡A¨Ò¦p§Ú­Ì¥i¥Hª½±µ¦b MATLAB µøµ¡¿é¤J¦p¤U¡G

>> round(clock) ans = 2012 2 6 10 58 12

¦b¤W¨Ò¤¤¡A¶Ç¦^ªº¾ã¼Æ¦V¶q¡A¥Nªí²{¦b®É¶¡¬O 2012 ¦~ 2 ¤ë 6 ¤é 10 ®É 58 ¤À 12 ¬í¡Around «ü¥Oªº§@¥Î¬O±N©Ò¦³¶Ç¦^¼Æ­È¡A¥[¥H¥|±Ë¤­¤J¦¨¾ã¼Æ¡A«K©ó¾\Ū¡C

¨Ï¥Î etime «ü¥O«h¥i¥H¶Ç¦^¨â­Ó®É¶¡ªº®t­È¡A¨Ã¥H¬í¼Æªí¥Ü¡C¦]¦¹±N clock ©M etime «ü¥O¦X¨Ö¨Ï¥Î¡A´N¥i¥H­pºâ¤@¬qµ{¦¡½Xªº°õ¦æ®É¶¡¡C¥H«e­±ªº¨Ò¤l¦Ó¨¥¡A¥i§ï¥Î clock ©M etime «ü¥O¨Ó±o¨ìÃþ¦üªºµ²ªG¡G

Example 3: 01-µ{¦¡­p®É/etime01.mt0 = clock; % °O¿ý²{¦bªº®É¶¡ a = inv(rand(1000)); % °õ¦æ¤Ï¯x°}¹Bºâ elapsedTime = etime(clock, t0) % ­pºâ©Ò¯Ó¶OªºÁ`®É¶¡ elapsedTime = 0.1490

Hint
etime ´N¬O elapsed time ¡]¸g¹L®É¶¡¡^ªºÂ²ºÙ¡C

¥t¤@­Ó¬ÛÃöªº«ü¥O¬O cputime¡A¥i¶Ç¦^ MATLAB ±q±Ò°Ê«á©Ò¥e¥Îªº CPU ®É¶¡¡C¦ý¥Ñ©ó MATLAB ©x¤è¤å¥óªí¥Ü¡Acputime ·|¨ü¨ì Windows ¹ê§@ªº¼vÅT¡]Pentium 4 with hyperthreading running Windows¡^¦Ó¤£·Ç½T¡A¦]¦¹§Ú­Ì¥Ø«e©Ò¾Çªº°¨¿ö­p®ÉÀ³¸Ó¥H tic¡Btoc¡Bclock¡Betime ³o¥|­Ó«ü¥O¬°¥D¡C


MATLABµ{¦¡³]­p¡G¶i¶¥½g