- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
结构体
结构体的生成 结构体的操作
– 添加成员变量 – 删除成员变量 – 调用成员变量
2014年1月1日
第15页
MATLAB R2010a 基础教程
结构体的生成
结构体生成: 直接输入: 输入的同时定义该元素的名称,使用“.”将变量 名与元素名连接。 struct函数: 1)struct_name=struct('field1',V1,'field2',V2,...), 其中 fieldn 是各成员变量名,Vn为对应的各成员 变量的内容。 2)多变量输入
课后作业
P109:1-2; P110:3
2014年1月1日
第20页
字符串的生成(1/2)
字符串:ASCII 值的数值数组 生成字符串的方法: stringname=’the content of the string’。 注意:内部包含单引号,需要输入两个连续 的单引号!
2014年1月1日
第3页
MATLAB R2010a 源自文库础教程
字符串的生成(2/2)
字符串是一个 ASCII 码的字符数组,可以 形成矩阵,但行必须有相同数目的列数。 char 函数:可以创建长度不一致的字符串 矩阵。char 函数自动将所有字符串的长度 设置为输入字符串中长度的最大值。 deblank函数:自动删除char函数添加的空 格
iscellstr 判断字符串单元数组 判断是否空格 isletter strings 判断数组是否由字母 组成 MATLAB 字符串句柄
第6页
函数名
函数用途
函数名
函数用途
2014年1月1日 isspace
MATLAB R2010a 基础教程
字符串和数值数组之间的转化
上面已经介绍字符串和数值数组之间可以相互转 uintN(如,uint8) uint8('ab')→ 97 98 将字符串转化为相应的无符号整数 化,除上面介绍的方法,MTALAB 还提供更多的 函数,用于字符串和其他数据类型数值数组之间 str2num str2num('123.56') →123.5600 将字符型转化为数字型 的转化,可以实现更多功能。 double('123.56') →49 50 51 46 53 str2double 与上一函数的功能相同,结果更精确
2014年1月1日
第9页
MATLAB R2010a 基础教程
单元数组元素的访问
注意:使用圆括号和花括号对单元数组索引 是不同的。 圆括号时表示的是该单元,用于标志单元。 花括号时表示的是该单元的内容,用于按 单元的寻址。
2014年1月1日
第10页
MATLAB R2010a 基础教程
显示单元数组
celldisp 函数:显示单元数组的内容。 celldisp 函数用于显示单元数组的全部内 容,有时候只需要显示单元数组的一个单 元,可以用花括号对单元进行索引。
2014年1月1日
第11页
MATLAB R2010a 基础教程
单元数组的图形显示
cellplot:MATLAB 支持以图形方式查看 单元数组的内容。用这种方法可以直观的 看出单元数组的结构。但是需要注意的是, 只能用于显示二维单元数组的内容。
2014年1月1日
第12页
MATLAB R2010a 基础教程
MATLAB R2010a 基础教程
第5章 字符串、单元数组和结构体
教学目标 掌握字符串的生成及操作 掌握单元数组的生成及操作 掌握结构体的生成及操作
2014年1月1日
第1页
MATLAB R2010a 基础教程
教学内容
字符串 单元数组 结构体
2014年1月1日
第2页
MATLAB R2010a 基础教程
一些,同时支持单元字符串数组 hex2num hex2dec bin2dec base2dec 将十六进制数转化为双精度数 将十六进制数基数转化为正数 将二进制转化为十进制 将 N 底数字字符串转化为十进制 54。 hex2num('A') →-1.4917e-154 hex2dec('B') →11 bin2dec('1010') →10 base2dec('212',3) →23
单元数组元素的删除
单元数组元素删除的方法很简单,只需将待删除 的元素置为“空”即可。需要注意的是在删除单 元数组的元素时,采用的索引方式为一维下标, 格式为:
A(cell_subscripts) = [ ]。
如果操作的单元数组为多维数组,则其索引方式 逐维进行,删除元素后,系统将该单元数组改变 为一维单元数组,元素按照维数逐次排序。 删除数组元素可以每次删除多个,下标用一维数 组指定
2014年1月1日
第4页
MATLAB R2010a 基础教程
字符串的操作
字符串的显示 直接显示; disp 函数显示。
2014年1月1日
第5页
MATLAB R2010a 基础教程
字符串的运算
字符串的运算主要包括:
1. 判断字符串是否相等: strcat strvcat 横向连接字符串 纵向连接字符串 strcmp(str1,str2); strcmp(str1,str2,n); 比较字符串的前n 个 strcmp strncmp 字符串比较 2.通过字符串运算来比较字符串中的字符 字符 findstr 字符串查找 字符串对齐 isspace(str);isletter(str) strjust 3.进行字符分类、查找与替换 strmatch strrep 字符串匹配 字符串查找与替换 findstr(str1,str2); 创建由空格组成的字 strtok 选择字符串中的部分 blanks 符串 strrep(str1,str2,str3); 删除字符串结尾的空 判断变量是否为字符 deblank ischar 格 4.字符串与数值数组之间的相互转换 串
2014年1月1日 第18页
MATLAB R2010a 基础教程
调用成员变量
调用方式: “结构体变量名.成员名” ; getfield函数 f=getfield(s,’name’),返回值为指定成员变 量内容,f=s.field同。
2014年1月1日
第19页
MATLAB R2010a 基础教程
第13页
2014年1月1日
MATLAB R2010a 基础教程
改变单元数组的维数
改变数组的维数可以通过添加或删除数组元素完 成。 reshape函数:按照顺序将原单元数组的元素进 行重新放置,得到新的单元数组元素个数与原数 组相同。
2014年1月1日
第14页
MATLAB R2010a 基础教程
函数
功能
备注
2014年1月1日
第7页
MATLAB R2010a 基础教程
单元数组
单元数组的生成 单元数组的操作
– 单元数组元素的访问 – 单元数组的显示 – 单元数组的图形显示 – 单元数组元素的删除 – 改变单元数组的维数
2014年1月1日
第8页
MATLAB R2010a 基础教程
单元数组的生成
单元数组中的每一个元素称为单元(cell)。单 元中的数据可以为任何数据类型,包括数值数组、 字符、符号对象、其他单元数组和结构体。 用户可以通过两种方式创建一个单元数组:
– 一个是通过赋值语句直接创建; 通过给每个单元逐个赋值来创建单元数组,将单元内容 用花括号(即{})括起来。 – 二是利用 cell 函数先为单元数组分配一个内存空间, 然后再给各个单元赋值。
2014年1月1日 第16页
MATLAB R2010a 基础教程
添加成员变量
如果需要向结构体中添加新的成员,可以 直接输入该变量的名称并赋值。
2014年1月1日
第17页
MATLAB R2010a 基础教程
删除成员变量
函数 rmfield : 从结构体中删除成员变量。命令 S=rmfield(S,’field’) 将删除结构体 S 中的 成员 field,同时保留 S 原有的结构。 可以使用命令 S=rmfield(S,fields) 一次删 除多个成员,其中 fields 为字符行变量或 者单元型变量。该命令删除 fields 中指定 的成员。