13-4 ������������������

§Ú­Ì¥i¥Î isstruct «ü¥O¨Ó´ú¸Õ¬Y­ÓÅܼƬO§_¬°µ²ºc°}¦C¡A¦p¤U

Example 1: 13-µ²ºc°}¦C/isstruct01.ms = struct('name', {'Tim', 'Ann'}, 'scores', {[1 3 5 ],[2 4 6]}); isstruct(s) ans = 1

isfield «ü¥O«h¥i¥Î©ó´ú¸Õ¬Yµ²ºc°}¦C¬O§_§t¤@¯S©wÄæ¦ì¡A¨Ò¦p¡G

Example 2: 13-µ²ºc°}¦C/isfield01.ms = struct('name', {'Tim', 'Ann'}, 'scores', {[1 3 5 ],[2 4 6]}); fprintf('isfield(s, ''name'') = %d\n', isfield(s, 'name')); fprintf('isfield(s, ''height'') = %d\n', isfield(s, 'height')); isfield(s, 'name') = 1 isfield(s, 'height') = 0

¦b¤W¨Ò¤¤¡A¦] s ¨Ã¤£¥]§t¡§height¡¨ªºÄæ¦ì¡A¬G¦^¶Ç¼Æ­È 0¡C

§Ú­Ì¥i¥Î cell2struct «ü¥O¨Ó±N²§½è°}¦CÂà´«¦¨µ²ºc°}¦C¡A¨Ò¦p¡G

Example 3: 13-µ²ºc°}¦C/cell2struct01.mfields = {'name', 'age'}; values = {'Tim', 9; 'Annie', 6}; s = cell2struct(values, fields, 2); s(1) % ¦L¥X²Ä¤@µ§¸ê®Æ s(2) % ¦L¥X²Ä¤Gµ§¸ê®Æ ans = name: 'Tim' age: 9 ans = name: 'Annie' age: 6

¦b¤W¨Ò¤¤¡A¹Bºâ¦¡¡us = cell2struct(values, fields, 2)¡v¥Nªí«ü¥O cell2struct ±N®Ú¾Ú°}¦CÅÜ¼Æ fields ªº¸ê®Æ¬°Äæ¦ì¦WºÙ¡A¨Ã¥H values ªº²Ä¤G­Óºû«×¨Ó¹ïÀ³Äæ¦ì¦WºÙ fields¡A¨Ó²£¥Í¤@­Óµ²ºc°}¦C s¡C¦pªG¥H values ªº²Ä¤@­Óºû«×¨Ó¹ïÀ³Äæ¦ì¦WºÙ fields¡A±o¨ìªºµ²ªG¦p¤U¡G

Example 4: 13-µ²ºc°}¦C/cell2struct02.mfields = {'name', 'age'}; values = {'Tim', 9; 'Annie', 6}; s = cell2struct(values, fields, 1); s(1) % ¦L¥X²Ä¤@µ§¸ê®Æ s(2) % ¦L¥X²Ä¤Gµ§¸ê®Æ ans = name: 'Tim' age: 'Annie' ans = name: 9 age: 6

cell2struct «ü¥O¯S§O¾A¥Î©ó¸ê®Æ®wªº¸ê®Æ¡C³q±`§Ú­Ì§Q¥Î¡u¸ê®Æ®w¤u¨ã½c¡v¡]Database Toolbox¡^±q¸ê®Æ®w¤¤¨ú¥Xªº¸ê®Æ¡A¹w³]ªº¸ê®Æ«¬ºA¬O²§­È°}¦C¡A§Q¥Î cell2struct «ü¥O¡A§Ú­Ì´N¥i¥H¤@¦¸±N¥¦§ï¬°§ó®e©ö³B²zªºµ²ºc°}¦C¡C

Hint
¦b MATLAB ¤¤¡A­Y«ü¥O§Î¦¡¬° A2B¡A¤j³¡¥Nªí¨ä¥\¯à¬°±NÅÜ¼Æ¥Ñ A «¬¦¡Âà´«¬° B «¬¦¡¡A¨ä¤¤ªº¼Æ¦r¡u2¡v§Y­^¤å¡uto¡vªº¦P­µ¦r¡AÃþ¦üªº«ü¥OÁÙ¦³¡@int2str¡Bnum2str¡Bstr2num¡Bstr2mat¡Bmat2str¡Bbin2dec¡Bhex2dec¡Bhex2num¡Bbase2decµ¥¡C

dir «ü¥O¥i¶Ç¦^¤@µ²ºc°}¦C¡A¥]§t²{¦b¥Ø¿ý¡]©Î¸ê®Æ§¨¡^¤Uªº¦UºØ¸ê°T¡A¨Ò¦p¡G

Example 5: 13-µ²ºc°}¦C/dir01.mdirinfo = dir(matlabroot) % ¦r¦êÅÜ¼Æ matlabroot ¥Nªí MATLAB ®Ú¥Ø¿ý dirinfo = 29x1 <a href="matlab:helpPopup struct" style="font-weight:bold">struct</a> array with fields: name date bytes isdir datenum

¥Ñ¤W¥iª¾¡Adirinfo ¬°¤@µ²ºc°}¦C¡A¤º§t¦b MATLAB ®Ú¥Ø¿ý¤U©Ò§tÀɮשΨä¥L¥Ø¿ýªº¸ê°T¡A§Y¨ä¦WºÙ¡]name¡^¡A²£¥Í¤é´Á¡]date¡^¡A¤j¤p¡]bytes¡^¡A¤Î¬O§_¬°¥Ø¿ý¡]isdir¡^µ¥¡C


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