版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、2022-2-221MATLAB 7.0MATLAB 7.0从入从入门到精通门到精通哈尔滨工业大学哈尔滨工业大学( (威海威海) )汽车工程学院汽车工程学院2022-2-222课程主要内容课程主要内容 第第1章章 MATLAB简介简介 第第2章章 数值运算数值运算 第第3章章 单元数组和结构单元数组和结构 第第4章章 字符串字符串 第第5章章 符号运算符号运算 第第6章章 MATLAB绘图基础绘图基础 第第7章章 程序设计程序设计 第第8章章 计算方法的计算方法的MATLAB实现实现 第第9章章 优化设计优化设计 第第10章章 SIMULINK仿真初探仿真初探2022-2-223第第3章章 单
2、元数组和结构单元数组和结构 在前面章节已经介绍了几种在前面章节已经介绍了几种MATLAB7.0常用常用的数据类型。本章将介绍两种特殊的数据类的数据类型。本章将介绍两种特殊的数据类型,即单元数组和结构体数组,这两种数据型,即单元数组和结构体数组,这两种数据类型的特点是允许用户将不同但是相关的数类型的特点是允许用户将不同但是相关的数据类型集成到一个单一的变量。这样,因为据类型集成到一个单一的变量。这样,因为相关的数据可以通过一个单元数组或是结构相关的数据可以通过一个单元数组或是结构体的数组进行组织和访问,数据的管理就变体的数组进行组织和访问,数据的管理就变得相对要容易一些。得相对要容易一些。202
3、2-2-2243.1 单元数组单元数组 单元数组就是每一个元素为一个单元的数单元数组就是每一个元素为一个单元的数组。每个单元可以包含任意数据类型的组。每个单元可以包含任意数据类型的MATLAB7.0数组。例如,单元数组的一个数组。例如,单元数组的一个单元可以是一个实数矩阵,或是一个字符单元可以是一个实数矩阵,或是一个字符串数组,也可以是一个复向量数组。串数组,也可以是一个复向量数组。2022-2-2253.1.1 单元数组的生成单元数组的生成 直接生成单元数组:直接生成单元数组: 用类似矩阵的记号将给复杂的数据结构纳用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示入一个
4、变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。下标类似,单元数组由大括号表示下标。包括左标志法和右标志法。包括左标志法和右标志法。 左标志法:左标志法就是把单元标志左标志法:左标志法就是把单元标志放在放在左边。左边。 右标志法:右标志法就是把单元标志右标志法:右标志法就是把单元标志放在放在右边。右边。2022-2-226左标志法左标志法 c1,1=abc; c1,2=eye(2); c2,1=1 2;3 4; c2,2=1 2; c c = abc 2x2 double 2x2 double 1x2 double2022-2-227右标志法右标志法 c(1,1)=abc;
5、c(1,2)=eye(2); c(2,1)=1 2;3 4; c(2,2)=1 2; c c = abc 2x2 double 2x2 double 1x2 double2022-2-228 上面的单元数组也可由下面的方法直接得到:上面的单元数组也可由下面的方法直接得到: c=abc,eye(2);1 2;3 4,1 2 c = abc 2x2 double 2x2 double 1x2 double2022-2-229 使用使用cell函数生成单元数组:函数生成单元数组: cell(n)生成一个生成一个n*n阶的置空单元数组;阶的置空单元数组; cell(m,n) 或或cell(m,n)生成
6、一个生成一个m*n阶的置空单元阶的置空单元数组;数组; cell(m,n,p,)或或cell(m,n,p,)生成一个生成一个m*n*p阶的置空单元数组;阶的置空单元数组; cell(size(a)生成与生成与a同形式的单元型置空矩阵。同形式的单元型置空矩阵。2022-2-2210cell函数生成单元数组函数生成单元数组 a=cell(2) a = 2022-2-2211 a1,1=1 2;2 2 a = 2x2 double 2022-2-2212 a1,2=MATLAB7.0 a = 2x2 double MATLAB7.0 2022-2-2213 a2,1=peking a = 2x2 d
7、ouble MATLAB7.0 peking 2022-2-2214 a2,2=1 2 a = 2x2 double MATLAB7.0 peking 1x2 double2022-2-22153.1.2 单元数组显示单元数组显示 单元数组的显示有以下几种方式单元数组的显示有以下几种方式 一是直接在命令窗口中输入单元数组的名字;一是直接在命令窗口中输入单元数组的名字; 二是使用函数二是使用函数celldisp(c)来输出。来输出。 想得到单元数组中某一个单元的值时,可以采用想得到单元数组中某一个单元的值时,可以采用c(m,n)或或cm,n的格式输出。但是它们得到的结果的格式输出。但是它们得到的
8、结果表示形式是不同的。表示形式是不同的。 函数函数celldisp(c)更适用于具有大量数据的单元数组更适用于具有大量数据的单元数组的显示。的显示。 cm,n 和和celldisp(c)显示的结果形式相同。显示的结果形式相同。 celldisp(a,name)在窗口中显示的单元型变量的内在窗口中显示的单元型变量的内容的名称为容的名称为name。2022-2-2216程序实例程序实例 c=abc,eye(2);1 2;3 4,1 2; c c = abc 2x2 double 2x2 double 1x2 double2022-2-2217 celldisp(c) c1,1 = abc c2,1
9、 = 1 2 3 4 c1,2 = 1 0 0 1 c2,2 = 1 22022-2-2218 c=abc,eye(2);1 2;3 4,1 2; c(1,2) ans = 2x2 double c1,2 ans = 1 0 0 12022-2-2219 a=1 2,1 2 3;2 3,2 3 4; celldisp(a,hh) hh1,1 = 1 2 hh2,1 = 2 3 hh1,2 = 1 2 3 hh2,2 = 2 3 42022-2-22203.1.3 单元数组绘图单元数组绘图 h=cellplot(c)返回一个向量,这个向量综合体现了返回一个向量,这个向量综合体现了表面、线和句柄。
10、表面、线和句柄。 h=cellplot(c,legend)返回一个向量,这个向量综返回一个向量,这个向量综合体现了表面、线和句柄,并有图形注释。合体现了表面、线和句柄,并有图形注释。2022-2-2221程序实例程序实例 a=1 2;2 2,MATLAB7.0;peking,1 2; h=cellplot(a) h = 152.0029 153.0024 154.0024 155.0024 156.0024 157.0024 158.00242022-2-22222022-2-2223程序实例程序实例 a=1 2;2 2,MATLAB7.0;peking,1 2; h=cellplot(a,l
11、egend) h = 152.0035 153.0026 154.0026 155.0026 156.0026 157.0026 158.00262022-2-22242022-2-22253.1.4 单元数组合并与变形单元数组合并与变形 使用使用c=a,b或或c=a;b将两个单元数组集成一个更将两个单元数组集成一个更大的数组。大的数组。 使用使用c(n,:)=删除单元数组的第删除单元数组的第n行。行。 reshape(x,m,n)和和reshape(x,m,n)将单元数组将单元数组x的的所有元素分配到一个所有元素分配到一个m*n的单元数组,但单元数的单元数组,但单元数组元素不是组元素不是m*
12、n时,返回错误信息。行列数不相时,返回错误信息。行列数不相等的话,仍是按列优先的原则。等的话,仍是按列优先的原则。2022-2-2226单元数组合并实例单元数组合并实例 a=1 2,as; b=2 5,AD; c=a,b c = 1x2 double as 1x2 double AD d=a;b d = 1x2 double as 1x2 double AD2022-2-2227单元数组删除实例单元数组删除实例 d=1 2,as;2 5,AD; d(1,:)= d = 1x2 double AD2022-2-2228单元数组变形实例单元数组变形实例 d=1 2,as;2 5,AD; c=res
13、hape(d,1,4) c = 1x2 double 1x2 double as AD2022-2-22293.2 结构型变量结构型变量 结构体是根据属性名组织起来的不同类型数据的结构体是根据属性名组织起来的不同类型数据的集合。结构体和单元数组的共同之处在于它们都集合。结构体和单元数组的共同之处在于它们都提供了一种分级存储机制来存储不同类型的数据,提供了一种分级存储机制来存储不同类型的数据,不同之处是组织数据的方式不一样。结构体数组不同之处是组织数据的方式不一样。结构体数组里的数据是通过属性名来引用的,而在单元数组里的数据是通过属性名来引用的,而在单元数组里,数据是通过单元数组下标引用来操作的
14、。里,数据是通过单元数组下标引用来操作的。2022-2-22303.2.1 结构型变量的生成结构型变量的生成 直接输入法:直接输入法: 采用直接输入法时,在给结构体成员元素直接赋采用直接输入法时,在给结构体成员元素直接赋值的同时定义该元素的名称,并使用点儿将结构值的同时定义该元素的名称,并使用点儿将结构型变量和成员元素名连接。型变量和成员元素名连接。2022-2-2231程序实例程序实例 student.test=99 56 96 87 67 69 87 76 92; =Huang Liang; student.weight=67; student.height=1.6
15、8; student.num=034093; student.add=School of civil engneering.Tsinghua university; student.tel2022-2-2232结构体显示结构体显示 输入结构体名称输入结构体名称student实现结构体显示:实现结构体显示: student student = test: 99 56 96 87 67 69 87 76 92 name: Huang Liang weight: 67 height: 1.6800 num: 34093 add: School of civil engnee
16、ring.Tsinghua university tel: 138104983132022-2-2233增加结构体变量增加结构体变量 可以通过以下形式语句添加新的结构变量可以通过以下形式语句添加新的结构变量(另外的另外的学生数据学生数据)。 student(2).test=99 65 88 78 76 98 75 96 59; %系统将默认之前的系统将默认之前的student为为student(1) student(2).name=Wei Huan; student(2).weight=50; student(2).height=1.58; student(2).num=034999; stu
17、dent(2).add=School of Psychology.Chongqing university; student(2).tel=02361701456;2022-2-2234 此时,输入此时,输入student将只得到该结构的成员变量名将只得到该结构的成员变量名而不显示内容而不显示内容 student student = 1x2 struct array with fields: test name weight height num add tel2022-2-2235 可以继续在窗口中输入可以继续在窗口中输入student(1)或或student(2)来来查询其具体内容。查询其
18、具体内容。 student(2) ans = test: 99 65 88 78 76 98 75 96 59 name: Wei Huan weight: 50 height: 1.5800 num: 34999 add: School of Psychology.Chongqing university tel: 023617014562022-2-2236 使用使用struct函数生成结构变量函数生成结构变量 Struct_array=struct(field,v1,field2,v2,),其,其中,中,field为各成员变量名,为各成员变量名,v1等为对应的各成员等为对应的各成员变量的
19、内容,但是必须配对出现。变量的内容,但是必须配对出现。2022-2-2237程序实例程序实例 student=struct(test,99 65 88 78 76 98 75 96 59,name,Wei Huan,weight,50,height,1.5800) student = test: 99 65 88 78 76 98 75 96 59 name: Wei Huan weight:50 height:1.58002022-2-2238失败的生成实例失败的生成实例 student=struct(test,99 65 88 78 76 98 75 96 59,name,Wei Huan
20、,weight,50,height) ? Error using = struct Field and value input arguments must come in pairs.2022-2-2239添加结构体变量添加结构体变量 student=struct(fen,86,gao,176) student = fen: 86 gao: 176 student(2)=struct(fen,90,gao,170) student = 1x2 struct array with fields: fen gao2022-2-22403.2.2 结构体变量的操作结构体变量的操作 在结构体变量中添
21、加成员变量在结构体变量中添加成员变量 student(1).gender=Male; student(1).age=25; student(2).gender=Female; student(2).age=21;2022-2-2241 在结构体变量中删除成员变量在结构体变量中删除成员变量 s=rmfield(s,field)从从m*n阶的结构体变量阶的结构体变量s中删除中删除指定的成员变量指定的成员变量field。但该函数仍保留原有结构。但该函数仍保留原有结构形式。形式。 s=rmfield(s,fields)当当fields是单元型变量时,将一是单元型变量时,将一次性删除多个成员变量。次性删
22、除多个成员变量。2022-2-2242程序实例程序实例 s=rmfield(student,name) s = test: 99 56 96 87 67 69 87 76 92 weight: 67 height: 1.6800 num: 34093 add: School of civil engneering.Tsinghua university tel: 138104983132022-2-2243 s=rmfield(student,weight,test) s = name: Huang Liang height: 1.6800 num: 34093 add: School of
23、civil engneering.Tsinghua university tel: 138104983132022-2-2244 在结构体变量中调用成员变量在结构体变量中调用成员变量 结构变量中的任何信息,可以通过结构变量中的任何信息,可以通过“结构体名称结构体名称+成员变量名成员变量名”的格式进行取出。的格式进行取出。 例如:例如:student(1).test 从结构体变量中获取某个成员变量时,可以直接从结构体变量中获取某个成员变量时,可以直接输入变量名输入变量名+成员名称,也可以采用循环语句的方成员名称,也可以采用循环语句的方式。式。 例如:例如:student.test2022-2-2
24、245程序实例程序实例 ans = Huang Liang ans = Wei Huan for i=1:length(student) disp(student(i).name); end Huang Liang Wei Huan2022-2-2246 函数法取值和赋值函数法取值和赋值 getfield函数取得当前存储在某个成员变量中的值。函数取得当前存储在某个成员变量中的值。表达式表达式f=getfield(s,field)返回指定成员变量的内返回指定成员变量的内容,与表达式容,与表达式f=s.field等价。等价。 setfield函数给某个成员变量插入新的值。表达式函数给某个成员变量插入新的值。表达式s=setfield(s,field,v)将成员变量将成员变量field的值设置为的值设置为v与表达式与表达式s.field=v等价。等价。2022-2-2247程序实例程序实例 c=getfield(student,name) c = Wei Huan c=setfield(student,name
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/ZTCA 013-2023非介入式充电设备负荷辩识模组技术规范
- T/ZJSEE 0059-2025火电机组分散控制系统安全防护技术规范
- 技术研发外包咨询服务商函8篇
- 视力恢复训练项目分析方案
- 小学生职业体验活动研究报告
- 赵水洼拆迁工作方案公告
- 机床行业发展状况分析报告
- 能源产业可持续发展研究报告总结范文
- 2026砖瓦建材行业市场动态监测与发展潜力报告
- 2026中国工业机器人市场需求变化与国产化替代进程
- 2026年贵阳市公共交通有限公司第二批驾驶员招聘笔试参考题库及答案详解
- 有机废气活性炭吸附处理安装工程竣工验收报告
- 2026年卫生高级职称面审答辩(社区护理)副高面审经典试题及答案
- 给水用聚乙烯(pe)管道系统第部分管件
- 2025年广州市民政局直属事业单位招聘笔试真题
- 蒸汽灭菌器培训课件
- 兰花介绍课件
- 《井下作业事故处理》课件-第六章 油水井维修及事故处理
- 《光伏发电技术》课件(共七章)
- T/CAPE 10108-2024设备设施报废管理指南
- 《诗经》诗经全文
评论
0/150
提交评论