665-MATLAB 程式设计与应用结构阵列.pptVIP

665-MATLAB 程式设计与应用结构阵列.ppt

  1. 1、本文档共24页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * * * * * * * * * * * MATLAB 程式設計入門篇:結構陣列 MATLAB 程式設計與應用 結構陣列 張智星 (Roger Jang) jang@ /jang 清大資工系 多媒體檢索實驗室 13-1結構陣列的建立 每一個結構陣列(Structure Array)可以包含多個元素,每一個元素可以看成是一筆資料。 因此每個元素(或每筆資料)可以包含數個欄位(Fields),而每個欄位可包含不同型態的資料。例如一個包含學生個人資料的結構陣列,可能含有的欄位是 name(學生姓名)、id(學號)、scores(小考成績)等。 結構陣列之範例一 要建立一個結構陣列,可在指令列直接輸入各個欄位的值。 範例13-1 : struct01.m clear student % 清除 student 變數 = ‘洪鵬翔’; % 加入 name 欄位 student.id = ‘mr871912’; % 加入 id 欄位 student.scores = [58, 75, 62]; % 加入 scores 欄位 student % 秀出結果 student = name: 洪鵬翔 id: mr871912 scores: [58,75,62]‘ 此時 student 即代表一個結構陣列的第一個元素,或是第一筆資料。 結構陣列之範例二 範例13-2 : struct02.m clear student % 清除 student 變數 = ‘洪鵬翔’; % 加入 name 欄位 student.id = ‘mr871912’; % 加入 id 欄位 student.scores = [58, 75, 62]; % 加入 scores 欄位 % 以下是新加入的第二筆資料 student(2).name = 邱中人; student(2).id = mr872510; student(2).scores = [25, 36, 92]; student % 秀出結果 student = 1x2 struct array with fields: Name Id scores dent = 1x2 struct array with fields: Name Id scores 結構陣列之範例二 此時 student 即代表一個 1×2 的結構陣列。由於此結構陣列已漸趨複雜,MATLAB 並不將所有欄位值印出。欲顯示某元素的特定欄位值,可輸入明確的敘述,例如 student(2).scores 等。 另一個建立結構陣列的方法,則是使用 struct 指令,其格式如下: structureArray = struct(field1, value1, field2, value2,….) 其中 field1、field2、…是欄位名稱,value1、value2、…則是欄位所包含的資料。如果 value1、value2、…為異質陣列(Cell Arrays,詳見第上一章),則 MATLAB 為依序將異質陣列的每個元素設定為每一個結構中相對應的欄位值,如以下範例。 結構陣列之範例三 範例13-3 : struct03.m student = struct(name, {張庭碩, 張庭安}, scores, {[50 60], [60 70]}); student(1) % 顯示 student(1) student(2) % 顯示 student(2) ans = name: 張庭碩‘ scores: [50 60] ans = name: 張庭安 scores: [60 70] 在上述使用法中,{‘張庭碩’, ‘張庭安’} 和 {[50 60], [60 70]} 都是異質陣列,因此他們的每個元素會被依次設定到每個結構之中。但是如果其中有一個異值陣列的長度是1,那麼 MATLAB 會進行「純量展開」(Scalar Expansion)來自動補足,如以下範例。 結構陣列之範例四 範例13-4 : struct04.m student = struct(name, 張庭安‘,scores, {[50 60], [90 100]}); student(1) % 顯示 student(1) student(2) % 顯示 student(2) ans = name: 張庭安 scor

您可能关注的文档

文档评论(0)

小玉儿 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档