13-1 ���c�}�C���إ�

¨C¤@­Óµ²ºc°}¦C¡]Structure Array¡^¥i¥H¥]§t«Ü¦h­Ó¤¸¯À¡A¨C¤@­Ó¤¸¯À¥i¥H¬Ý¦¨¬O¤@µ§¸ê®Æ¡C¦]¦¹¨C­Ó¤¸¯À¥i¥H¥]§t¼Æ­ÓÄæ¦ì¡]Fields¡^¡A¦Ó¨C­ÓÄæ¦ì¥i¥]§t¦U­Ó¤£¦P«¬ºAªº¸ê®Æ¡C¨Ò¦p¤@­Ó¥]§t¾Ç¥Í­Ó¤H¸ê®Æªºµ²ºc°}¦C¡A¥i¯à§t¦³ªºÄæ¦ì¬O name¡]¾Ç¥Í©m¦W¡^¡Bid¡]¾Ç¸¹¡^¡Bscores¡]¤p¦Ò¦¨ÁZ¡^µ¥¡C­n«Ø¥ß¦¹ºØµ²ºc¡A¥i¦b«ü¥O¦Cª½±µ¿é¤J­ÓÄæ¦ìªº­È¡A¦p¤U¡G

Example 1: 13-µ²ºc°}¦C/struct01.mclear student % ²M°£ student ÅÜ¼Æ student.name = '¬xÄPµ¾'; % ¥[¤J name Äæ¦ì student.id = 'mr871912'; % ¥[¤J id Äæ¦ì student.scores = [58, 75, 62]; % ¥[¤J scores Äæ¦ì student % ¨q¥Xµ²ªG student = name: '¬xÄPµ¾' id: 'mr871912' scores: [58 75 62]

¦¹®É student §Y¥Nªí¤@­Óµ²ºc°}¦Cªº²Ä¤@­Ó¤¸¯À¡A©Î¬O²Ä¤@µ§¸ê®Æ¡C±ý¥[¤J²Ä¤Gµ§¸ê®Æ¡]©Î¬O²Ä¤G­Ó¤¸¯À¡^¡A¥i¿é¤J¦p¤U¡G

Example 2: 13-µ²ºc°}¦C/struct02.mclear student % ²M°£ student ÅÜ¼Æ student.name = '¬xÄPµ¾'; % ¥[¤J name Äæ¦ì student.id = 'mr871912'; % ¥[¤J id Äæ¦ì student.scores = [58, 75, 62]; % ¥[¤J scores Äæ¦ì % ¥H¤U¬O·s¥[¤Jªº²Ä¤Gµ§¸ê®Æ student(2).name = 'ªô¤¤¤H'; student(2).id = 'mr872510'; student(2).scores = [25, 36, 92]; student % ¨q¥Xµ²ªG student = 1x2 <a href="matlab:helpPopup struct" style="font-weight:bold">struct</a> array with fields: name id scores

¦¹®É student §Y¥Nªí¤@­Ó 1¡Ñ2 ªºµ²ºc°}¦C¡C¥Ñ©ó¦¹µ²ºc°}¦C¤wº¥ÁͽÆÂø¡AMATLAB ¨Ã¤£±N©Ò¦³Äæ¦ì­È¦L¥X¡C±ýÅã¥Ü¬Y¤¸¯Àªº¯S©wÄæ¦ì­È¡A¥i¿é¤J©ú½Tªº±Ô­z¡A¨Ò¦p student(2).scores µ¥¡C

¤W­zªº student µ²ºc°}¦C¥i¹Ï¥Ü¦p¤U¡G

ÅܼÆnameidscores
student(1)'¬xÄPµ¾''mr871912'[58,75,62]
student(2)'ªô¤¤¤H''mr872510'[25,36,92]

¥t¤@­Ó«Ø¥ßµ²ºc°}¦Cªº¤èªk¡A«h¬O¨Ï¥Î struct «ü¥O¡A¨ä®æ¦¡¦p¤U¡G

structureArray = struct(field1, value1, field2, value2,¡K.)

¨ä¤¤ field1¡Bfield2¡B¡K¬OÄæ¦ì¦WºÙ¡Avalue1¡Bvalue2¡B¡K«h¬OÄæ¦ì©Ò¥]§tªº¸ê®Æ¡C¦pªG value1¡Bvalue2¡B¡K¬°²§½è°}¦C¡]Cell Arrays¡A¸Ô¨£²Ä¤W¤@³¹¡^¡A«h MATLAB ·|¨Ì§Ç±N²§½è°}¦Cªº¨C­Ó¤¸¯À³]©w¬°¨C¤@­Óµ²ºc¤¤¬Û¹ïÀ³ªºÄæ¦ì­È¡A¦p¤U¡G

Example 3: 13-µ²ºc°}¦C/struct03.mstudent = struct('name', {'±i®xºÓ', '±i®x¦w'}, 'scores', {[50 60], [60 70]}); student(1) % Åã¥Ü student(1) student(2) % Åã¥Ü student(2) ans = name: '±i®xºÓ' scores: [50 60] ans = name: '±i®x¦w' scores: [60 70]

¦b¤W­z¨Ï¥Îªk¤¤¡A{'±i®xºÓ', '±i®x¦w'} ©M {[50 60], [60 70]} ³£¬O²§½è°}¦C¡A¦]¦¹¥L­Ìªº¨C­Ó¤¸¯À·|³Q¨Ì¦¸³]©w¨ì¨C­Óµ²ºc¤§¤¤¡C¦ý¬O¦pªG¨ä¤¤¦³¤@­Ó²§­È°}¦Cªºªø«×¬O1¡A¨º»ò MATLAB ·|¶i¦æ¡u¯Â¶q®i¶}¡v¡]Scalar Expansion¡^¨Ó¦Û°Ê¸É¨¬¡A½d¨Ò¦p¤U¡G

Example 4: 13-µ²ºc°}¦C/struct04.mstudent = struct('name', '±i®x¦w', 'scores', {[50 60], [90 100]}); student(1) % Åã¥Ü student(1) student(2) % Åã¥Ü student(2) ans = name: '±i®x¦w' scores: [50 60] ans = name: '±i®x¦w' scores: [90 100]

¦b¤W­z½d¨Ò¤¤¡A¡u±i®x¦w¡v¥iµø¬°²§½è°}¦Cªº¤@­Ó¤¸¯À¡A¦]¦¹¦b³]©w¦Ü student µ²ºc°}¦C®É¡AMATLAB ·|¶i¦æ¯Â¶q®i¶}¡A±N¡u±i®x¦w¡v¤À§O³]©w¨ì student ªº¨â­Ó¤¸¯Àªº name Äæ¦ì­È¡C

µ²ºc°}¦C¥i¥H¬O±_ª¬¦¡¡]Nested¡^ªº¡A¤]´N¬O»¡¡Aµ²ºc°}¦CªºÄæ¦ì¥i¬O¥t¤@­Óµ²ºc°}¦C¡A§Ú­Ì¥i¥HÂǦ¹²£¥Í½ÆÂøªº¸ê®Æµ²ºc¡CÁ|¨Ò¨Ó»¡¡A­Y­n¥[¤J²Ä¤G¦ì¾Ç¥Í©Ò­×ªº¨âªù½Òµ{©M¾Ç¤À¡A¥i¨£¤U¦C½d¨Ò¡G

Example 5: 13-µ²ºc°}¦C/struct05.mstudent = struct('name', {'±i®xºÓ', '±i®x¦w'}, 'scores', {[50 60], [60 70]}); student(2).course(1).title = 'Web Programming'; student(2).course(1).credits = 2; student(2).course(2).title = 'Numerical Method'; student(2).course(2).credits = 3; student(2).course ans = 1x2 <a href="matlab:helpPopup struct" style="font-weight:bold">struct</a> array with fields: title credits

Hint
¦b¤W¨Ò¤¤¡Astudent(1).course ·|¦Û°Ê³Q¹w³]¦¨ªÅ¯x°}¡C

§Ú­Ì¥ç¥i¤@µ§¤@µ§¦a«Ø¥ß student µ²ºc°}¦C¡A¦p¤U¡G

Example 6: 13-µ²ºc°}¦C/buildStruct01.mclear student % ²M°£ student ÅÜ¼Æ student(1) = struct('name', 'Banny', 'scores', [85,80,92,78]); student(2) = struct('name', 'Joey', 'scores', [80,85,90,88]); student(3) = struct('name', 'Betty', 'scores', [88,82,90,80]);

¤W­zªº student µ²ºc°}¦C¡A¥i¹Ï¥Ü¦p¤U¡G


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