《字符串、单元数组和结构.ppt》由会员分享,可在线阅读,更多相关《字符串、单元数组和结构.ppt(31页珍藏版)》请在三一办公上搜索。
1、第5章 字符串、单元数组和结构,5.1 字符和字符串5.1.1 设定字符串1.字符串定义字符串是用单撇号括起来的字符序列。格式:字符数组名=字符序列说明:(1)字符序列由若干个字符组成.(2)每一个字符(包括空格)都是字符数组的元素.例,abff 表示字符串abff(3)字符串内的单引号是由两个连续的单引号表示。12er&*234 表示字符串12er&*234,例5-1 str=I have many good friends!str=I have many good friends!whos%当前工作空间变量及信息清单。Name Size Bytes Class str 1x25 50 ch
2、ar arrayGrand total is 25 elements using 50 bytes,(4)字符串当作一个行向量,行向量每个元素对应一个字符,其标识方法和数值行向量相同。例,u=we must study hard!u=we must study hard!v=and we should never forget our country!v=and we should never forget our country!w=u,vw=we must study hard!and we should never forget our country!,(5)字符串可以有多个行,但每行
3、必须有相同数目的列数。例 t=xiao ming kao shang le daxuexiaofang meiyou kaoshangdaxuet=xiao ming kao shang le daxuexiaofang meiyou kaoshangdaxue t=xiao ming kao shang le daxuexiaofang meiyou kaoshangdaxue?Error using=vertcatAll rows in the bracketed expression must have the same number of columns.,2.计算字符数组的维数格式:
4、size(字符数组)例:a=matrix lab;size(a)ans=1 10%表示a的维数是1行4列,5.1.2 字符串的操作1.字符串元素的读取(1)利用数组操作工具进行读取 格式:字符数组串名(数值m)功能:读取第m个的元素。str=今天,是2005年10月25日,我们班一起去上海旅游。str=今天,是2005年10月25日,我们班一起去上海旅游。str(6)ans=0%这是2005中第1个0。str(17)ans=我,(2)读取字符串中的多个字符。格式:字符数组串名(初值位置:步长:终止位置)s=str(10:28)s=10月25日,我们班一起去上海旅游。w=str(28:-1:10
5、)w=。游旅海上去起一班们我,日52月01,(2)使用disp函数显示字符串 disp(字符串名)例5-3,disp(str)今天,是2005年10月25日,我们班一起去上海旅游。disp(s)10月25日,我们班一起去上海旅游。,2.字符串的基本变换(1)字符串的ASCII码操作 格式:abs(字符串名)功能:计算字符串中对应字符的ASCII码。a=abs(str)a=Columns 1 through 4 20170 22825 65292 26159 Columns 5 through 8 50 48 48 53 Columns 9 through 12 24180 49 48 2637
6、6 Columns 13 through 16 50 53 26085 65292 Columns 17 through 20 25105 20204 29677 19968 Columns 21 through 24 36215 21435 19978 28023 Columns 25 through 28 26053 28216 12290 32,(2)使用char函数进行逆变换格式:char(ASCII码)功能:将ASCII码转换为字符串。例,b=char(a)b=今天,是2005年10月25日,我们班一起去上海旅游。,(3)字符串的执行 格式:eval(字符串表达式)功能:计算字符串表
7、达式的值。例,已知 a=pi,b=355/113,求a-b的值。a=pi;b=355/113;a-bans=-2.6676e-007 x=a-b;v=eval(x)v=-2.6676e-007,3.字符串的运算(1)判断字符串是否相等 格式:strcmp(字符串1,字符串2)功能:若字符串1与字符串2相等,系统返回1,否则,返回0。格式:strnmp(字符串1,字符串2,n)功能:若字符串1与字符串2的前n个字符相等,系统返回1,否则,返回0。例5-7 words1=situate;words2=situp;N=strcmp(words1,words2)N=0 Y=strncmp(words1
8、,words2,3)Y=1 N=strncmp(words1,words2,4)N=1 N=strncmp(words1,words2,5)N=0,(2)通过字符的运算比较字符格式:字符串1 比较符号 字符串2比较符号见表5-2。注意:字符串1与字符串2要具有相同维数。例5-8 F1=小明考上了清华大学物理系F1=小明考上了清华大学物理系 F2=小芳在百货大楼做销售人员F2=小芳在百货大楼做销售人员 F1=F2ans=Columns 1 through 8 1 0 1 0 0 1 0 1 Columns 9 through 12 0 1 1 1,(3)字符串中字符的分类 格式:isspace(
9、字符串)功能:字符串中的字符若是空白字符,返回为1,否则返回为0。realstring=http:/realstring=http:/A=isspace(realstring)A=Columns 1 through 8 0 0 0 0 0 0 0 0 Columns 9 through 16 0 0 0 0 0 0 1 0 Columns 17 through 24 0 0 0 0 0 0 0 0 Columns 25 through 32 0 0 0 0 0 0 0 0,格式:issletter(字符串)功能:字符串中的字符若是字母字符,返回为1,否则返回为0。例5-9 B=isletter
10、(realstring)B=Columns 1 through 8 1 1 1 0 1 1 1 1 Columns 9 through 16 1 1 0 1 1 1 0 1 Columns 17 through 24 1 1 1 0 0 0 1 1 Columns 25 through 32 1 0 1 1 1 0 1 1,(4)查找与替换格式:findstr(字符串1,字符串2)功能:查找字符串2(或字符串1)在字符串1(或字符串2)的位置。若查找成功,返回第一个相同字符的具体位置,否则返回空。例5-10 s=How much wood would a woodchuck chuck?;a1
11、=findstr(s,a)a1=21 a1=findstr(a,s)a1=21 a1=findstr(s,wood)a1=10 23 a1=findstr(s,Wood)a1=a1=findstr(s,)a1=4 9 14 20 22 32,格式:strfind(字符串1,字符串2)功能:查找字符串2在字符串1的位置。若查找成功,返回第一个相同字符的具体位置,否则返回空。若字符串2的长度大于字符串1的长度时返回空。例5-11 s=How much wood would a woodchuck chuck?;b1=strfind(s,a)b1=21 b2=strfind(a,s)b2=b3=st
12、rfind(s,wood)b3=10 23 b4=strfind(s,Wood)b4=b5=strfind(s,)b5=4 9 14 20 22 32,(5)字符串与数值的转换(p68-69页)num2str(实型变量)功能:将实型变量转换成字符串.int2str(整型变量)功能:将整型变量转换成字符串.,例,a=1.2 3.4 5.6 7.8;s=num2str(a)结果:s=1.2 3.4 5.6 7.8 x=int2str(a)%转换前四舍五入取整 结果:x=1 3 6 8 a1=size(a)结果:a1=1 4%一行四个元素 s1=size(s)结果:s1=%一行39个元素,数字1.2为3个元素,1 39%空格也作为一个元素。x1=size(x)结果:x1=1 10%一行10个元素,5.2 单元数组(不讲)一、单元数组的生成1、直接生成单元数组,2、使用cell函数生成单元数组,二、单元数组的操作1、单元数组内容的显示或获取,2、单元数组的变维处理,5.3 结构型变量一、结构型变量的生成1、直接输入法,2、使用struct函数生成结构型变量,二、结构型变量的操作1、在结构体变量中添加成员变量,2、在结构体变量中删除成员变量,3、在结构体变量中调用成员变量,4、getefield和setfield函数的使用,