




已阅读5页,还剩41页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
MATLAB7.0从入门到精通,主要讲述内容,第1章MATLAB简介第2章数值运算第3章单元数组和结构第4章字符串第5章符号运算第6章MATLAB绘图基础第7章程序设计第8章计算方法的MATLAB实现第9章优化设计第10章Simulink仿真初探,第3章单元数组和结构3.1单元数组,单元数组就是每一个元素为一个单元的数组。每个单元可以包含任意数据类型的MATLAB7.0数组。例如,单元数组的一个单元可以是一个实数矩阵,或是一个字符串数组,也可以是一个复向量数组。,1、单元数组的生成直接生成单元数组:用类似矩阵的记号将给复杂的数据结构纳入一个变量之下。和矩阵中的圆括号表示下标类似,单元数组由大括号表示下标。,左标志法:左标志法就是把单元标志放在左边。c1,1=abc;c1,2=eye(2);c2,1=12;34;c2,2=12;cc=abc2x2double2x2double1x2double,右标志法:右标志法就是把单元标志放在右边。c(1,1)=abc;c(1,2)=eye(2);c(2,1)=12;34;c(2,2)=12;cc=abc2x2double2x2double1x2double,上面的单元数组也可由下面的方法直接得到:c=abc,eye(2);12;34,12c=abc2x2double2x2double1x2double,要显示单元数组可以直接在命令窗口中输入单元数组的名字,也可以使用函数celldisp(c)来输出;想得到单元数组中某一个单元的值时,可以采用c(m,n)或cm,n的格式输出。但是它们得到的结果表示形式是不同的。函数celldisp(c)更适用于具有大量数据的单元数组的显示。cm,n和celldisp(c)显示的结果形式相同。,cc=abc2x2double2x2double1x2double,celldisp(c)c1,1=abcc2,1=1234c1,2=1001c2,2=12,c(1,1)ans=abcc1,1ans=abc,c(1,2)ans=2x2doublec1,2ans=1001,c(2,1)ans=2x2doublec2,1ans=1234,c(2,2)ans=1x2doublec2,2ans=12,使用cell函数生成单元数组:cell(n)生成一个n*n阶的置空单元数组;cell(m,n)或cell(m,n)生成一个m*n阶的置空单元数组;cell(m,n,p,)或cell(m,n,p,)生成一个m*n*p阶的置空单元数组;cell(size(a)生成与a同形式的单元型置空矩阵;,a=cell(2)a=a1,1=12;22或a(1,1)=12;22a=2x2doublea1,2=MATLAB7.0a=2x2doubleMATLAB7.0,a2,1=pekinga=2x2doubleMATLAB7.0pekinga2,2=12a=2x2doubleMATLAB7.0peking1x2double,2、单元数组的操作celldisp(a)显示单元型变量a的内容;celldisp(a,name)在窗口中显示的单元型变量的内容的名称为name。,a=12,123;23,234;celldisp(a,hh)hh1,1=12hh2,1=23hh1,2=123hh2,2=234,h=cellplot(c)返回一个向量,这个向量综合体现了表面、线和句柄。h=cellplot(c,legend)返回一个向量,这个向量综合体现了表面、线和句柄,并有图形注释。,a=12;22,MATLAB7.0;peking,12;h=cellplot(a)h=152.0029153.0024154.0024155.0024156.0024157.0024158.0024,a=12;22,MATLAB7.0;peking,12;h=cellplot(a,legend)h=152.0035153.0026154.0026155.0026156.0026157.0026158.0026,使用c=a,b将两个单元数组集成一个更大的数组。使用c(n,:)=删除单元数组的第n行。reshape(x,m,n)和reshape(x,m,n)将单元数组x的所有元素分配到一个m*n的单元数组,但单元数组元素不是m*n时,返回错误信息。行列数不相等的话,仍是按列优先的原则。,3.2结构型变量,结构体是根据属性名组织起来的不同类型数据的集合。结构体和单元数组的共同之处在于它们都提供了一种分级存储机制来存储不同类型的数据,不同之处是组织数据的方式不一样。结构体数组里的数据是通过属性名来引用的,而在单元数组里,数据是通过单元数组下标引用来操作的。,1、结构型变量的生成直接输入法:采用直接输入法时,在给结构体成员元素直接赋值的同时定义该元素的名称,并使用点儿将结构型变量和成员元素名连接。,student.test=995696876769877692;=HuangLiang;student.weight=67;student.height=1.68;student.num=034093;student.add=Schoolofcivilengneering.Tsinghuauniversity;student.tel,输入student会出现:studentstudent=test:995696876769877692name:HuangLiangweight:67height:1.6800num:34093add:Schoolofcivilengneering.Tsinghuauniversitytel可以通过以下形式语句添加新的结构变量(另外的学生数据)。student(2).test=996588787698759659;%系统将默认之前的student为student(1)student(2).name=WeiHuan;student(2).weight=50;student(2).height=1.58;studen(2)t.num=034999;student(2).num=034999;student(2).add=SchoolofPsychology.Chongqinguniversity;student(2).tel=02361701456;,此时,输入student将只得到该结构的成员变量名而不显示内容studentstudent=1x2structarraywithfields:testnameweightheightnumaddtel,可以继续在窗口中输入student(1)和student(2)来查询其具体内容。student(2)ans=test:996588787698759659name:WeiHuanweight:50height:1.5800num:34999add:SchoolofPsychology.Chongqinguniversitytel:02361701456,使用struct函数生成结构变量Struct_array=struct(field,v1,field2,v2,),其中,field为各成员变量名,v1等为对应的各成员变量的内容,但是必须配对出现。student=struct(test,996588787698759659,name,WeiHuan,weight,50,height,1.5800)student=test:996588787698759659name:WeiHuanweight:50height:1.5800,student=struct(test,996588787698759659,name,WeiHuan,weight,50,height)?Errorusing=structFieldandvalueinputargumentsmustcomeinpairs.,student=struct(fen,86,gao,176)student=fen:86gao:176student(2)=struct(fen,90,gao,170)student=1x2structarraywithfields:fengao,2、结构变量的操作在结构体变量中添加成员变量student(1).gender=Male;student(1).age=25;student(2).gender=Female;student(2).age=21;,在结构体变量中删除成员变量s=rmfield(s,field)从m*n阶的结构体变量s中删除指定的成员变量field。但该函数仍保留原有结构形式。s=rmfield(s,fields)当fields是字符型变量或单元型变量时,将一次性删除多个成员变量。,s=rmfield(student,name)s=test:995696876769877692weight:67height:1.6800num:34093add:Schoolofcivilengneering.Tsinghuauniversitytels=rmfield(student,weight,test)s=name:HuangLiangheight:1.6800num:34093add:Schoolofcivilengneering.Tsinghuauniversitytel在结构体变量中调用成员变量结构变量中的任何信息,可以通过“结构体名称+成员变量名”的格式进行取出。student(1).test需要注意不能同时从多个结构体变量中取出某个成员变量。例如:student.test是错误的。如果用户要调用所有学生的名字,需使用循环语句。,fori=1:length(student)disp(student(i).name);endHuangLiangWeiHuangetfield函数取得当前存储在某个成员变量中的值。表达式f=getfild(s,field)返回指定成员变量的内容,与表达式f=s.field等价。setfield函数给某个成员变量插入新的值。表达式s=setfield(s,field,v)将成员变量field的值设置为v与表达式s.field=v等价。,c=getfield(student,name)c=WeiHuanc=setfield(student,name,Tom)c=test:996588787698759659name:Tomweight:50height:1.5800,names=fieldnames(s)返回结构体s中的成员变量名称。isfield(s,field)判断field是否是结构体s中的成员变量名称,是输出1,不是输出0。isstruct(s)判断s是否是结构体数组,是输出1,不是输出0。,student=struct(test,996588787698759659,name,WeiHuan,weight,50,height,1.5800);names=fieldnames(student)names=testnameweightheight,stude
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版蔬菜种植基地农业机械化推广承包协议
- 2025年度草原生态修复租赁项目合同
- 2025年度绿色蔬菜直销合作供应合同范本
- 2025年度特殊需求包车客运服务协议书
- 2025版节能涂料工程承包合同
- 2025年度文化创意产品动产质押融资协议
- 2025褚贞离婚协议书及财产分割与子女抚养费协议
- 金融行业CRM数字化升级在金融机构客户服务创新中的应用
- 2025年度节能环保型标准砖批发销售合同
- 产业园区建设资金申请报告2025年规划
- 四年级下册递等式计算练习400道及答案
- 2024年华能甘肃能源开发有限公司招聘笔试参考题库含答案解析
- 助产士在产时并发症处理中的助产安全
- 单片机的看门狗
- 市场营销(第2版)课件全套 王永贵 第1-17章-市场与市场营销概述及发展-顾客营销学
- 高中数学 人教A版 必修一 《集合与常用逻辑用语》 1.1集合的概念
- 深圳某电厂锅炉维修改造施工组织设计-new(常用版)
- GB/T 4950-2021锌合金牺牲阳极
- GB/T 15171-1994软包装件密封性能试验方法
- 证券从业考试基础模拟卷二(题目+解析)
- 水轮发电机讲义课件
评论
0/150
提交评论