Matlab学习心得系列-005.结构数组.docxVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Matlab学习心得系列-005.结构数组

005. 结构数组 编程语言要描述日常生活中的某一类事物,就是要赋予这类事物一个公共名称(类名),再把这类事物具有的各种属性分别存放为若干变量(数据元素),这就是“结构体”。结构体里再加上若干操作其数据元素的函数(成员函数),就是“类”。然后,“类”就可以作为新的数据类型定义对象(类的实例化),再操作这些对象,实现编程需要。 以上就是面向对象的编程思想(适合C++或Java)。 例如,描述学生,就用一个学生类Student;学生属性:学号、姓名、专业;实现操作:学生转专业。(粗略C++代码) class Student { private: // 数据元素一般设为该类的私有数据,防止属性被随意修改 int number; string name; // string定义字符串 string major; public: // 成员函数一般设为可公共访问 Student(int num, string n, string m); // 类构造函数用于生成具体对象,必须与类名相同 void ChangeMajor(String newmajor); } Student:: Student(int num, string n, string m) { number = num; name = n; major = m; } void Student:: ChangeMajor(String newmajor) // Student::表示函数是来自Student类 { major = newmajor; } // 下面是使用Student类: Student s1; // 用Student类定义一个“学生”对象s1 s1. ChangeMajor(“Math”); // 把学生s1的专业修改为“Math” 可见,借助结构体或类的编程,既能与现实世界中的事物建立自然的对应(符合思维习惯),又能实现模型化的“批量生产”(用“类”可以整体性地、一遍一遍地建立对象、操作对象)。这也是结构体或类(面向对象编程)的优势所在。 __________________________ 回到Matlab,元胞数组只是呆板的堆放数据的仓库,结构数组则具有了与实际对象所对应的结构属性,这等同于“C语言的结构体”、“C++或Java的类的数据成员部分”。 结构数组是由若干个结构(struct)组成,每个结构都包含多个结构域(fields);数据必须存放在结构域中,可以是任何类型、任意大小的数据。例如,多个图形对象构成一个结构数组,每个图形对象就是一个结构,图形对象的一个属性对应一个结构域。 即,结构数组(矩阵)的元素是结构,每个结构包含若干结构域。 结构数组的创建 用直接赋值语句创建 例1 创建学生的结构数组,每个结构包含学号、姓名两个结构域(属性) student(1).number = 001; % 直接对结构数组第1个结构s(1)的结构域number赋值 student(1).name = 张三; student(1).number = 002; student(2).name = 李四; student 运行结果:student = 1x2 struct array with fields: number name 注意:上面是一维结构数组,也可以是二维或更多维的,例如, student(1,2).name = ……; 用struct函数创建 语法:s = struct(‘field1’, values1, ‘field2’, values2, …) student(1) = struct(number, 001, name, 张三); student(2) = struct(number, 002, name, 李四); student 运行结果同上。 二、结构数组的操作 访问结构数组中的结构域 通过结构域访问操作符“.”例如, student(2).name 返回学生二的姓名:李四 利用deal( )函数 [name1, name2] = deal(student(:).name) 返回 name1 = 张三 name2 = 李四 “:” 表示所有结构域 利用getfield( )函数获取指定结构域的值, 对于前面的结构数组student,大小是1×2 getfield(student,{1,2},name) % 返回结构数组student第1行第2列的结构的结

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档