9-4 三維?¼å?點內?’æ?

MATLAB ªº interp3 ¥i¶i¦æ 3 ºû®æ¤lÂIªº¤º´¡¡A¨ä¤@¯ë®æ¦¡¬°

vi = interp3(x, y, z, v, xi, yi, zi, method)

¨ä¤¤ x¡By¡Bz¡Bv ¬O¤Tºû¯x°}¡A«e¤TªÌ¥Nªí¸ê®ÆÂIªº¿é¤J³¡¥÷¡Av «h¬O¸ê®ÆÂIªº¿é¥X³¡¥÷¡Axi¡Byi ¤Î zi «h¬O¤º´¡ÂI¡A¦r¦ê method «h«ü©w¤£¦Pªº¤º´¡¤èªk¡A¦@¦³ 4 ºØ¡G

¨Ï¥Î interp3 ®É¡A¯x°} x¡By¡Bz ¥²¶·¬OÄY®æ»¼¼W©Î»¼´î¡C¤@¯ë±¡ªp¤U¡A x¡By ¤Î z ³£¬O¥Ñ ndgrid «ü¥O ©Ò²£¥Í¡A¥H«OÃÒ¨ä®æ¦¡ªº¥¿½T©Ê¡C

¨Ï¥Î interp3 ªº¨Ò¤l¦p¤U¡C­º¥ý¡A§Ú­Ì¨Ï¥Î flow «ü¥O²£¥Í¤T«×ªÅ¶¡¤¤ªº¸ê®ÆÂI¡]³o¨Ç¸ê®Æ¬O¤õ½b¼Q®g¤fªº³t«×¤j¤p¡^¡A¨Ã¥H¤Á­±¹Ï¡]Slice¡^ªº¤è¦¡µe¥X¡G

Example 1: 09-¤º´¡ªk/slice01.m[x, y, z, v] = flow(10); slice(x, y, z, v, [6 9.5], 2.5, [-2 0]); colorbar; % Åã¥ÜÃC¦â»P¨ç¼Æ­Èªº¹ï·Óªí size(x) ans = 10 20 10

¥Ñ¤W¥iª¾ x¡By¡Bz ªººû«×¬O 10¡Ñ20¡Ñ10¡C¦b¤W¨Ò¤¤¡Aslice «ü¥O¥i¹ï¤T«×ªÅ¶¡°µ¡§¤Á¤ù¡¨¡A¤§«á¸g¥ÑÃC¦âªº¤£¦P¡A´N¥i¥H°Ï§O¨ç¼Æ­Èªº°ª§C¡A¡uÃC¦â¡v»P¡u¨ç¼Æ­È¡vªº¹ï·Óªí¡A¥i¥H°Ñ¨£¹Ï§Î¥k¤èªº colorbar¡C

Hint
  • ¦bMATLAB±`¥Îªº1ºû¿é¤Jªº¨ç¼Æ¬O humps¡A±`¥Î¨Ó´ú¸Õ¦±½uªº¹sÂI©Î¬O·¥­È¡C
  • ±`¥Îªº2ºû¿é¤Jªº¨ç¼Æ¬O peaks¡A±`¥Î¨Ó´ú¸Õ¦±­±¹Ï©Î¬Oµ¥°ª½u¡C
  • ¦Ó±`¥Îªº¤Tºû¿é¤Jªº¨ç¼Æ´N¬O flow¡A±`¥Î¨Ó´ú¸Õ¤Á¤ù¹Ï©Î¤Tºû¤º´¡¡C

«Ü©úÅ㪺¡A¥Ñ¤W­z½d¨Òªº¹Ï§Î¡A¥i¥H·Pı¸ê®Æªº¸ÑªR«×¤Ó§C¡A¦]¦¹¹Ï§Î«Ü²ÊÁW¡C¬°¤F¨Ï¹Ï§Î§ó¬°²Ó½o¡A±µµÛ§Ú­Ì¨Ï¥Î meshgrid «ü¥O²£¥Í¤T«×ªÅ¶¡ªº®æ¤lÂI¡A¨Ã¥Î interp3 ¨Ó¶i¦æ¤º´¡¡A½d¨Ò¦p¤U¡G

Example 2: 09-¤º´¡ªk/interp301.m[x, y, z, v] = flow(10); [xi, yi, zi] = meshgrid(.1:.25:10, -3:.25:3, -3:.25:3); vi = interp3(x, y, z, v, xi, yi, zi); slice(xi, yi, zi, vi, [6 9.5], 2.5, [-2 0]); % ²£¥Í¤Á¤ù¹Ï colorbar; % Åã¥ÜÃC¦â»P¨ç¼Æ­Èªº¹ï·Óªí size(xi) ans = 25 40 25

¥Ñ¤W¥iª¾ xi¡Byi¡Bzi ªººû«×¬O 25¡Ñ40¡Ñ25¡A¤ñ­ì¥ýªº¤À§G­n¸Y±K³\¦h¡A¦]¦¹µe¥X¨Óªº¹Ï§Î¤]¤ñ¸û²Ó½o¡B¬üÆ[¡C

Hint
¦b¤W­z½d¨Òªº¹Ï§Î¤¤¡A­Y­n¤£Åã¥Ü®æ½u¡A¥i¥H¿é¤J¡ushading interp¡v¡A¦¹®É©Ò±o¨ìªºÃC¦â´N¬O¶i¤@¨B¸g¥Ñ¤º´¡©Ò±o¨ì¥­·ÆÅܤƪºÃC¦â¡A½Ð¸Õ¸Õ¬Ý¡C


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