第五章字符串_第1页
第五章字符串_第2页
第五章字符串_第3页
第五章字符串_第4页
第五章字符串_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-5-41第五章第五章 字符串、单元数组和结构体字符串、单元数组和结构体 在实际的应用中,出了数组在实际的应用中,出了数组MATLAB还需要用到其他的数据结构,例如字符串、还需要用到其他的数据结构,例如字符串、单元数组、结构体等。单元数组、结构体等。 本章介绍字符串、单元数组、结构体的本章介绍字符串、单元数组、结构体的生成及操作。生成及操作。 在实际的应用中,除了数组,在实际的应用中,除了数组,MATLAB还需要用到其他的数据结构,例如字符串、还需要用到其他的数据结构,例如字符串、单元数组、结构体等。单元数组、结构体等。 本章介绍字符串、单元数组、结构体的本章介绍字符串、单元数组、结构

2、体的生成及操作。生成及操作。 2022-5-425.1 字符串字符串5.1.1 字符串的生成字符串的生成 MATLAB 中的字符串为中的字符串为 ASCII 值的数值的数值数组,作为字符串表达式进行表示。在值数组,作为字符串表达式进行表示。在 MATLAB 中,生成字符串的方法中,生成字符串的方法: stringname=the content of the string1. 由单引号由单引号创建,例如:创建,例如: st=hello everyonest =hello everyone5.1.1 字符串的生成字符串的生成 MATLAB 中的字符串为中的字符串为 ASCII 值的数值的数值数组

3、,作为字符串表达式进行表示。在值数组,作为字符串表达式进行表示。在 MATLAB 中,生成字符串的方法中,生成字符串的方法: stringname=the content of the string1. 由单引号由单引号 创建,例如:创建,例如: st=hello everyonest =hello everyone2022-5-43 如果在字符串内部包含单引号,要如何正确处如果在字符串内部包含单引号,要如何正确处理呢?理呢? st1=The MATLABHELP is a good reference for using Matlab? st1=The MATLABHELP is a goo

4、d reference for using MatlabError: Missing operator, comma, or semicolon. st1=The MATLABHELP is a good reference for using Matlabst1 =The MATLABHELP is a good reference for using Matlab2022-5-442. 字符串是一个字符串是一个 ASCII 码的字符数组码的字符数组,因此,因此,与普通数组一样,字符串也可以形成矩阵与普通数组一样,字符串也可以形成矩阵(表现为一个字符串有多行)。但是,这(表现为一个字符串有多

5、行)。但是,这些行必须有相同数目的列数。些行必须有相同数目的列数。v st2=The MATLABHELP is a good reference for using Matlabvst2 =vThe MATLABHELP is a good reference for using Matlab2022-5-45 st3=abcdefst3 =abcdef st4=abcde? Error using = vertcatAll rows in the bracketed expression must have the same number of columns.二维字符数组如何实现呢?这些

6、行必须有相同数目的列数这些行必须有相同数目的列数2022-5-463. 使用使用 char 函数函数可以创建长度不一致的字符串矩可以创建长度不一致的字符串矩阵。阵。char 函数自动将所有字符串的长度设置为输函数自动将所有字符串的长度设置为输入字符串中长度的最大值。入字符串中长度的最大值。 st3=char(abc,defgh)st3 =abc defgh whos st3 Name Size Bytes Class st3 2x5 20 char arrayGrand total is 10 elements using 20 bytes2022-5-47字符串长度测试字符串长度测试函数函数

7、size()与与deblank()函数函数 name=char(zhang li,zhou xian lin)name =zhang li zhou xian lin size(name)ans = 2 13fist=name(1,:),second=name(2,:)fist =zhang li second =zhou xian lin length1=size(fist),length2=size(second)length1 = 1 13length2 = 1 13 z=deblank(name(1,:)z =zhang li lengthOfz=size(z)lengthOfz =

8、1 8deblank函数自动删除函数自动删除char函数添加的空格函数添加的空格2022-5-485.1.2 字符串的操作字符串的操作 字符串本质是一个元素全部为整数的数值数组,因此可以采用对数组的操作字符串本质是一个元素全部为整数的数值数组,因此可以采用对数组的操作来来处理字符串。处理字符串。1. 字符串的显示字符串的显示字符串的显示有两种方式:字符串的显示有两种方式:直接显示直接显示和利用和利用 disp 函数进行显示。函数进行显示。 st3st3 =abc defgh disp(st3)abc defgh2. 字符串的执行字符串的执行在在 MATLAB 中可以用中可以用函数函数 eval

9、 来执行字符串。来执行字符串。2022-5-49eval(str):执行字符串执行字符串str中的表达式,命令等。中的表达式,命令等。 str=m=,1:10str =m=1:10 eval(str)m = 1 2 3 4 5 6 7 8 9 102022-5-410for n=1:3 magic_str=M,int2str(n),=magic(n);.eval(magic_str)endM1 = 1M2 = 1 3 4 2M3 = 8 1 6 3 5 7 4 9 22022-5-4113.字符串的运算字符串的运算v 字符串的运算主要包括:字符串的运算主要包括: 判断字符串是否相等判断字符串是

10、否相等 通过字符串运算来比较字符串中的字符通过字符串运算来比较字符串中的字符 进行字符分类、查找与替换进行字符分类、查找与替换1. 字符串与数值数组之间的相互转换字符串与数值数组之间的相互转换 2022-5-412函数名函数名函数用途函数用途函数名函数名函数用途函数用途strcat横向连接字符串横向连接字符串strvcat纵向连接字符串纵向连接字符串strcmp字符串比较字符串比较strncmp比较字符串的前比较字符串的前n 个字符个字符findstr字符串查找字符串查找strjust字符串对齐字符串对齐strmatch字符串匹配字符串匹配strrep字符串查找与替字符串查找与替换换strto

11、k选择字符串中的选择字符串中的部分部分blanks创建由空格组成创建由空格组成的字符串的字符串deblank删除字符串结尾删除字符串结尾的空格的空格ischar判断变量是否为判断变量是否为字符串字符串iscellstr判断字符串单元判断字符串单元数组数组isletter判断数组是否由判断数组是否由字母组成字母组成isspace判断是否空格判断是否空格stringsMATLAB 字符串字符串句柄句柄2022-5-413 st1=abcdefst1 =abcdef str2=abstr2 =ab isequal(st1,str2)ans = 0 st3=abst3 =ab isequal(st3,

12、str2)ans = 1str1=matlab;str2=Matlab; isequal(str1,str2)ans = 0 str1=str2ans = 0 1 1 1 1 1 str3=Mat; str3=str2? Error using = =Array dimensions must match for binary array op. isequal(str3,str2)ans = 02022-5-414(1)字符串的比较字符串的比较v字符串的比较主要为比较两个字符串是否相同,字符串的比较主要为比较两个字符串是否相同,字符串中的子串是否相同和字符串中的个别字符字符串中的子串是否相同

13、和字符串中的个别字符是否相同。用于比较字符串的函数主要是是否相同。用于比较字符串的函数主要是 strcmp 和和 strncmp。strcmp()函数:函数:功能:用于比较两个字符串是否相同。功能:用于比较两个字符串是否相同。调用格式:调用格式: strcmp(str1,str2)返回值返回值: (1)当两个字符串相同时返回当两个字符串相同时返回1,否则返回,否则返回0。 (2)当所比较的两个字符串是单元字符数组当所比较的两个字符串是单元字符数组时,返回值时,返回值 为一个列向量,元素为相应行比较的结果。为一个列向量,元素为相应行比较的结果。2022-5-415strncmp()功能:用于比较

14、两个字符串的前面功能:用于比较两个字符串的前面n个字符是否相个字符是否相同同调用格式:调用格式: strncmp(str1,str2,n) 返回值返回值: (1)当字符串的前当字符串的前 n 个字符相同时返回个字符相同时返回1,否则返回,否则返回 0。(2)当所比较的两个字符串时单元数组时,返回值为列当所比较的两个字符串时单元数组时,返回值为列向量,元素为相应行比较的结果。向量,元素为相应行比较的结果。2022-5-416 str1=matlab;str2=Matlab ; str3=Mat; strcmp(str1,str2)ans = 0 strcmp(str2,str3)ans = 0

15、strncmp(str2,str3,3)ans = 1 strncmp(str2,str3,4)ans = 02022-5-417v当两个字符串拥有相同的维数当两个字符串拥有相同的维数时,可以利用时,可以利用 MATLAB 运算法则,对字符数组进行比较。运算法则,对字符数组进行比较。v字符数组的比较与数值数组的比较基本相同,不字符数组的比较与数值数组的比较基本相同,不同之处在于字符数组比较时进行比较的是字符的同之处在于字符数组比较时进行比较的是字符的 ASCII 码值。进行比较返回的结果为一个数值向码值。进行比较返回的结果为一个数值向量,元素为对应字符比较的结果。量,元素为对应字符比较的结果。

16、2022-5-418符号符号符号意义符号意义英文简写英文简写=等于等于eq=不等于不等于ne大于大于gt=大于等于大于等于ge2022-5-419 str1=matlab;str2=Matlab ; ge(str1,str2)ans = 1 1 1 1 1 1 le(str1,str2)ans = 0 1 1 1 1 12022-5-420isspace()和()和isletter()()vMATLAB 可以判断字符串中的字符是否为空格字可以判断字符串中的字符是否为空格字符或者字母的函数符或者字母的函数isspace 和和isletter 。isspace:用法为:用法为 isspace(st

17、r),判断字符串,判断字符串 str 中的字符是否为空格,是空格字符则返回中的字符是否为空格,是空格字符则返回1,否则返回否则返回0。isletter:用法为:用法为 isletter(str),判断字符串,判断字符串 str 中的字符是否为字母,是字母则返回中的字符是否为字母,是字母则返回1,否,否则返回则返回0。2022-5-421 name=abc defname =abc def isletter(name)ans = 1 1 1 0 1 1 1 isspace(name)ans = 0 0 0 1 0 0 02022-5-422(2)字符串的查找和替换)字符串的查找和替换v 用于查找

18、的函数主要有用于查找的函数主要有 findstr,strmatch,strrep,strtok 等。等。findstr:用于在一个字符串中查找子字符串,返回子用于在一个字符串中查找子字符串,返回子字符串出现的起始位置。用法为字符串出现的起始位置。用法为findstr(str1,str2),执,执行时系统行时系统首先判断两个字符串的长短,然后在长的字首先判断两个字符串的长短,然后在长的字符串中检索短的子字符串。符串中检索短的子字符串。 strrep:查找字符串中的子字符串并将其替换为另一查找字符串中的子字符串并将其替换为另一个子字符串。用法为个子字符串。用法为 str = strrep(str1

19、, str2, str3),将,将 str1 中的所有子字符串中的所有子字符串 str2 替换为替换为 str3。 name=abc def; strrep(name,abc,ABC)ans =ABC def2022-5-423 name=abc def; str=abcstr =abc findstr(name,str)ans = 1 findstr(name,def)ans = 5 findstr(def,name)ans = 5 strfind(name,def)ans = 5 strfind(def,name)ans = findstr()可以互换两个字符串的位置,可以互换两个字符串的

20、位置,strfind()也可以实现查找字串,但是也可以实现查找字串,但是两个参数不能换位两个参数不能换位STRFIND Find one string within another. K = STRFIND(TEXT,PATTERN) returns the starting indices of any occurrences of the string PATTERN in the string TEXT. STRFIND will always return if PATTERN is longer than TEXT. If you wish to search for inclusi

21、on of either TEXT in PATTERN or PATTERN in TEXT, use FINDSTR instead. 2022-5-424 name=matlabmatlabmatname =matlabmatlabmat findstr(name,m)ans = 1 7 13 findstr(lab,name)ans = 4 10 strfind(lab,name)ans = 2022-5-425strmatch:在在字符数组字符数组(字符矩阵字符矩阵)的每一行中的每一行中查找是否存在待查找的字符串,存在则返回查找是否存在待查找的字符串,存在则返回1,否则返回否则返回0

22、。用法为。用法为strmatch(str, STRS),查,查找找 STRS中以中以 str 开头的字符串。另外可开头的字符串。另外可以用以用strmatch(str, STRS,exact),查找,查找精确包含精确包含 str 的字符串的字符串。strtok:该函数用于选取字符串中的第一个部该函数用于选取字符串中的第一个部分。分。(对字符矩阵不起作用对字符矩阵不起作用)。该函数的简单用该函数的简单用法为法为 strtok(str)。 strtok(this is an example) %字符串字符串ans =this2022-5-426 strmatch(mat,char(mat,matl

23、ab,MAT)%字符矩阵字符矩阵ans = 1 2 strmatch(mat,char(mat,matlab,MAT),exact)ans = 1 strmatch(mat,char(MAT,matlab,MAT),exact)ans = Empty matrix: 0-by-1 strmatch(mat,char(MAT,matlab,MAT)ans = 22022-5-4275.1.3 字符串与数值之间的转化字符串与数值之间的转化 v一个字符串是由单引号括起来的简单文本。一个字符串是由单引号括起来的简单文本。在字符串中的每个字符都是数组中的一个在字符串中的每个字符都是数组中的一个元素,这些

24、数字是由元素,这些数字是由 ASCII 字符表示的字符表示的。这些字符和整数之间可以相互转化。这些字符和整数之间可以相互转化。1:字符串转化为数组:字符串转化为数组 abs(); double()2022-5-428 name=char(zhan gli,feng shan)name =zhan gli feng shan abs_of_name=abs(name)abs_of_name = 122 104 97 110 32 103 108 105 32 102 101 110 103 32 115 104 97 110 double_of_name=double(name)double_o

25、f_name = 122 104 97 110 32 103 108 105 32 102 101 110 103 32 115 104 97 1102022-5-429 str=who am Istr =who am I double(str)ans = 119 104 111 32 97 109 32 73 number=123.45number =123.45 double(number)ans = 49 50 51 46 52 532022-5-4302: 将数值数组转化为字符串将数值数组转化为字符串v char 函数函数的用法的用法Str=char(arr),该,该命令将包含正数的数

26、组命令将包含正数的数组 arr 转化为字符数组。转化为字符数组。当当 arr 是一个是一个字符型单元数组字符型单元数组时,时,Str=char(arr) 命令将命令将 arr中的每一个单元转化中的每一个单元转化为字符型数组的对应行。使用为字符型数组的对应行。使用 cellstr 可以进可以进行逆变换。行逆变换。Str=char(str1,str2,str3,.),该命令生成的字,该命令生成的字符串矩阵包含字符串符串矩阵包含字符串 str1、str2 和和 str3,三个,三个字符串的长度可以不相同。字符串的长度可以不相同。2022-5-431 name=char(zhan gli,feng s

27、han)name =zhan gli feng shan abs_of_name=abs(name)abs_of_name = 122 104 97 110 32 103 108 105 32 102 101 110 103 32 115 104 97 110 char(abs_of_name)ans =zhan gli feng shan2022-5-432 c1,1=abcc = abc 3x3 double c1,2=char(matlab,help)c = abc 2x6 char C=char(c)C =abc matlabhelp ce=cellstr(C)ce = abc mat

28、lab help whos ce Name Size Bytes Class Attributes ce 3x1 206 cell whos C Name Size Bytes Class Attributes C 3x6 36 char 2022-5-433字符串和数值数组之间的转化字符串和数值数组之间的转化(补充补充)v上面已经介绍字符串和数值数组之间可以相互转上面已经介绍字符串和数值数组之间可以相互转化,除上面介绍的方法,化,除上面介绍的方法,MTALAB 还提供更多的还提供更多的函数,用于字符串和其他数据类型数值数组之间函数,用于字符串和其他数据类型数值数组之间的转化,可以实现更多功能

29、。的转化,可以实现更多功能。 2022-5-434函数函数功能功能备注备注uintN(如,如,uint8)将字符串转化为相应的无将字符串转化为相应的无符号整数符号整数uint8(ab) 97 98str2num将字符型转化为数字型将字符型转化为数字型str2num(123.56) 123.5600str2double与上一函数的功能相同,与上一函数的功能相同,结果更精确一些,同时支结果更精确一些,同时支持单元字符串数组持单元字符串数组double(123.56) 49 50 51 46 53 54。hex2num将十六进制数转化为双精将十六进制数转化为双精度数度数hex2num(A) -1.4

30、917e-1541.4917e-154hex2dec将十六进制数基数转化为将十六进制数基数转化为正数正数hex2dec(B) 11 11bin2dec将二进制转化为十进制将二进制转化为十进制bin2dec(1010) 10 10base2dec将将 N 底数字字符串转化为底数字字符串转化为十进制十进制base2dec(212,3) 23 232022-5-4355.2 单元数组单元数组 主要内容:主要内容:v5.2.1 单元数组的生成单元数组的生成v5.2.2 单元数组的操作单元数组的操作 单元数组元素的访问单元数组元素的访问单元数组的显示单元数组的显示单元数组的图形显示单元数组的图形显示单元

31、数组元素的删除单元数组元素的删除改变单元数组的维数改变单元数组的维数2022-5-4365.2.1 单元数组的生成单元数组的生成v要在要在MALTAB中实现比较复杂的编程,就不能不中实现比较复杂的编程,就不能不用单元数组用单元数组(cell array)和结构数组和结构数组(structarray)。v这两种数据类型均是这两种数据类型均是将不同的相关数据集成到一将不同的相关数据集成到一个单一的变量中。个单一的变量中。v单元数组中的单元数组中的每一个元素称为单元每一个元素称为单元(cell). v单元可以包含任何类型的单元可以包含任何类型的matlab数据:数值数组数据:数值数组, 字符字符,

32、符号对象符号对象, 甚至其他的单元数组和结构体甚至其他的单元数组和结构体.v 不同的单元可以包含不同的数据不同的单元可以包含不同的数据. vMATLAB 中的单元数组可以为任意维,通常最常中的单元数组可以为任意维,通常最常用的是一维和二维单元数组。用的是一维和二维单元数组。2022-5-437v用户可以通过两种方式创建一个单元数组:用户可以通过两种方式创建一个单元数组:1:通过赋值语句直接创建;:通过赋值语句直接创建; 单元数组用单元数组用花括号花括号(即(即)表示,在赋值时)表示,在赋值时需要将单元内容用花括号括起来。需要将单元内容用花括号括起来。2:利用:利用 cell 函数函数先为单元数

33、组分配一个内存空先为单元数组分配一个内存空间,然后再给各个单元赋值。间,然后再给各个单元赋值。2022-5-4381:直接赋值创建单元数组:直接赋值创建单元数组 c=1,magic(2)c = 1 2x2 double c2,1=helloc = 1 2x2 double hello c1,3=char(i,happy)c = 1 2x2 double 2x5 char hello class(c)ans =cell2022-5-439 A(1,1)=1A = 1 A(1,2)=magic(2)A = 1 2x2 double A(2,1)=hello; A(1,3)=char(i,happy

34、)A = 1 2x2 double 2x5 char hello isequal(c,A)ans = 12022-5-4402:利用:利用 cell 函数函数: B=cell(2,3) %首先用首先用 cell 函数创建一个空的单元数组函数创建一个空的单元数组B = whos B Name Size Bytes Class Attributes B 2x3 24 cell B(2,1)=A(2,1) %然后再为数组元素赋值然后再为数组元素赋值B = hello B(1,3)=c(1,3)B = 2x5 char hello 2022-5-441 AB=A BAB = 1 2x2 double

35、2x5 char 2x5 char hello hello A_B=A;BA_B = 1 2x2 double 2x5 char hello 2x5 char hello 2022-5-4425.2.2 单元数组的操作单元数组的操作 单元数组元素的访问单元数组元素的访问 单元数组的显示单元数组的显示 单元数组的图形显示单元数组的图形显示 单元数组元素的删除单元数组元素的删除 改变单元数组的维数改变单元数组的维数2022-5-4431:单元数组元素的访问:单元数组元素的访问 v使用圆括号进行索引使用圆括号进行索引; A(1,3) %圆括号索引时,表示的是该单元圆括号索引时,表示的是该单元ans

36、= 2x5 charv使用花括号对单元数组索引;使用花括号对单元数组索引; A1,3 %花括号索引时,表示该单元的内容花括号索引时,表示该单元的内容ans =i happy2022-5-444 for i=1:3C(i)=magic(i);end celldisp(C)C1 = 1C2 = 1 3 4 2C3 = 8 1 6 3 5 7 4 9 2 C1,2(2,:) %先取得先取得C的单元内容,再访问这个矩阵的第二行元素的单元内容,再访问这个矩阵的第二行元素ans = 4 2 C1,3(1,3,:) %访问访问C第一行第三个单元中第一列,第三列的元素第一行第三个单元中第一列,第三列的元素an

37、s = 8 1 6 4 9 22022-5-4452:显示单元数组:显示单元数组v在显示单元数组时在显示单元数组时 MATLAB 有时只显示单有时只显示单元的大小和数据类型,而不显示每个单元元的大小和数据类型,而不显示每个单元的具体内容。若要显示单元数组的内容,的具体内容。若要显示单元数组的内容,可以用可以用 celldisp 函数。函数。2022-5-446 A %只显示单元的大小和数据类型只显示单元的大小和数据类型A = 1 2x2 double 2x5 char hello celldisp(A) %显示单元数组的内容显示单元数组的内容A1,1 = 1A2,1 =helloA1,2 =

38、1 3 4 2A2,2 = A1,3 =i happyA2,3 = 2022-5-4473:单元数组的图形显示:单元数组的图形显示 vMATLAB 支持以图形方式支持以图形方式(cellplot)查看单元数组查看单元数组的内容。用这种方法可以直观的看出单元数组的的内容。用这种方法可以直观的看出单元数组的结构。但是需要注意的是,结构。但是需要注意的是,cellplot 只能用于显只能用于显示二维单元数组的内容。示二维单元数组的内容。 A A = 1 2x2 double 2x5 char hello 23 1x1 cell cellplot(A)2022-5-4482022-5-4494:单元数

39、组元素的删除单元数组元素的删除 v单元数组元素删除的方法单元数组元素删除的方法:将待删除的元素置为将待删除的元素置为“空空”即可即可。需要注意的是在删除单元数组的元。需要注意的是在删除单元数组的元素时,采用的索引方式为一维下标,格式为:素时,采用的索引方式为一维下标,格式为:A(cell_subscripts) = 。v如果操作的单元数组为多维数组,则其索引方式如果操作的单元数组为多维数组,则其索引方式逐维进行,删除元素后,系统将该单元数组改变逐维进行,删除元素后,系统将该单元数组改变为一维单元数组,元素按照维数逐次排序。为一维单元数组,元素按照维数逐次排序。v删除数组元素可以每次删除多个,下

40、标用一维数删除数组元素可以每次删除多个,下标用一维数组指定组指定2022-5-450 AA = 1 2x2 double 2x5 char hello 23 1x5 double A(2)=A = 1 2x2 double 23 2x5 char 1x5 double BB = 2x5 char hello B(2,3)=? A null assignment can have only one non-colon index. B(2,:)=B = 2x5 char2022-5-451第51页5:改变单元数组的维数改变单元数组的维数 1: 可以通过添加或删除数组元素改变数组的维数可以通过添加

41、或删除数组元素改变数组的维数。删除数组元素时,得到的单元数组为原数组中剩删除数组元素时,得到的单元数组为原数组中剩下元素排列而成,为一维数组,如上面一部分所下元素排列而成,为一维数组,如上面一部分所介绍。添加数组元素时,自动添加该数组所对应介绍。添加数组元素时,自动添加该数组所对应的行和列,其他元素为空。的行和列,其他元素为空。2: 通过函数通过函数 reshape 改变数组的形状。改变数组的形状。reshape 函数按照顺序将原单元数组的元素进行重新放置,函数按照顺序将原单元数组的元素进行重新放置,得到新的单元数组元素个数与原数组相同。得到新的单元数组元素个数与原数组相同。2022-5-45

42、2 C=cell(3)C = C(1,:)=C = reshape(C,3,2)ans = 2022-5-4535.3 结构体结构体 vMATLAB的结构体变量和的结构体变量和C语言的结构体变量类语言的结构体变量类似,并且比似,并且比C语言更直观。语言更直观。v与单元数组不同的是,结构体有一个名字,结构与单元数组不同的是,结构体有一个名字,结构体的每个成员元素也有自己的名字,访问是通过体的每个成员元素也有自己的名字,访问是通过元素的名字来完成的。元素的名字来完成的。v主要内容:主要内容:1:结构体的生成:结构体的生成 2:结构体的操作:结构体的操作 添加成员变量添加成员变量删除成员变量删除成员

43、变量调用成员变量调用成员变量2022-5-4545.3.1 结构体的生成结构体的生成v两种生成方式两种生成方式: 直接输入与直接输入与struct函数函数1:直接输入:直接输入=wangliang;student.number=0012102;student.age=23; %使用使用“.”符号符号 studentstudent = name: wangliang number: 0012102 age: 232022-5-455 需要扩充结构体数组时,可以通过直接对结构需要扩充结构体数组时,可以通过直接对结构体变量赋值来完成。体变量赋值来完成。 student(2).

44、name=zhangli %直接为第二个结构体变量赋直接为第二个结构体变量赋值值student = 1x2 struct array with fields: %结构体数组被扩充为结构体数组被扩充为1x2 name number age student(2) %显示第二个对象显示第二个对象ans = name: zhangli number: age: 2022-5-4562:使用结构体生成函数:使用结构体生成函数 struct()vstruct 函数的最基本的使用方式是:函数的最基本的使用方式是: struct_name= struct(field1,V1,field2,V2,.),v其中其中 fieldn 是各成员变量名,是各成员变量名,Vn为对应的为对应的各成员变量的内容。各成员变量的内容。2022-5-457student=struct(name,wangliang,number,0012102,age,23)student = name: wangliang number: 0012102 age: 232022-5-458一次创建结构体多个变量的值一次创建结构体多个变量的值person=struct(name,wangliang,zha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论