第三章字符串

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【例3-3】 使用函数创建字符串数组。 】 使用函数创建字符串数组。 >> c1=char('China changchun','ccit'); >> c2=str2mat('China','Changchun','','ccit'); >> a1='auto'; >> a2='film'; >> a3='forest'; >> a4='city'; >> b1=strvcat(a1,a4); >> b2=strvcat(a2,a4); >> b3=strvcat(a3,a4); 查看上述语句运行结果。在命令窗口输入变量名,结果如下: 查看上述语句运行结果。在命令窗口输入变量名,结果如下:
[] [] []
[] [] []
>> C(3,2)={'celldisp'} C= 'The Grate Wall' 'The Summer Palace' [2x2 double] [] >> C(3,3)={'cellplot'} C= 'The Grate Wall' 'The Summer Palace' [2x2 double] [] [] 'celldisp' [] [] 'cellplot' [] 'celldisp' [] [] []
c=cell(m,n,p,…)或c=cell([m,n,p…]) 建立 或 m×n×p×…的单元矩阵 单元是空矩阵。 的单元矩阵,单元是空矩阵 × × × 的单元矩阵 单元是空矩阵。 c=cell(size(A)) 建立和 大小相同的单元数 建立和A大小相同的单元数 组。 事实上,利用 函数建立单元数组,是先用 利用cell函数建立单元数组 是先用cell生 事实上 利用 函数建立单元数组 是先用 生 成一个空的单元数组,然后再向其中添加所需的数 成一个空的单元数组 然后再向其中添加所需的数 见例3-6: 据,见例 : 见例 【例3-6】 利用 函数建立单元数组 然后再向其中 函数建立单元数组,然后再向其中 】 利用cell函数建立单元数组 个别单元添加数据。 个别单元添加数据。 >> C=cell(3,3) C= [] [] [] [] [] [] [] [] []
第二节
单元数组的建立
单元数组( Array)是一种比较特殊的Matlab数组, Matlab数组 单元数组(Cell Array)是一种比较特殊的Matlab数组,其 基本结构是单元,每个元素都是一个单元, 基本结构是单元,每个元素都是一个单元,单元中可以包含其 它类型的数组。每个单元本身在数组中是平等的, 它类型的数组。每个单元本身在数组中是平等的,用下标来 区分。单元内可以存放任何类型、任何大小的数组, 区分。单元内可以存放任何类型、任何大小的数组,而且同 一单元数组内各单元的内容可以不同。 一单元数组内各单元的内容可以不同。 同数值数组一样,单元数组的维数不受限制,可以是一维、 同数值数组一样,单元数组的维数不受限制,可以是一维、 二维或多维。 二维或多维。单元数组对单元的编址方法有单下标编址和全 下标编址。 下标编址。 对于单元数组来说, 对于单元数组来说,单元和单元里的内容是两个完全不同的 范畴。因此,寻访单元和寻访单元内容是两种不同的操作。 范畴。因此,寻访单元和寻访单元内容是两种不同的操作。 以二维单元数组为例,A 4,2) ,A( 单元数组中的第4行第2 以二维单元数组为例,A(4,2)是A单元数组中的第4行第2列 单元元素; A{4,2}是指 单元数组中的第4行第2 是指A 单元元素;而A{4,2}是指A单元数组中的第4行第2列单元中 所允许存取的内容。两者的区别仅是用圆括号或是用花括号。 所允许存取的内容。两者的区别仅是用圆括号或是用花括号。
由例3-6可见 单元数组中的内容一般以压缩的形式 由例 可见,单元数组中的内容一般以压缩的形式 可见 显示,我们可以通过函数 我们可以通过函数celldisp来查看单元数组中的详 显示 我们可以通过函数 来查看单元数组中的详 细内容或通过函数cellplot以图形的形式显示单元数组 细内容或通过函数 以图形的形式显示单元数组 的内容。 的内容。
第三章 字符串
字符串数组的建立 单元数组的建立 结构数组的建立 数字与字符串的相互转换
第一节 字符串数组的建立
在Matlab中,字符串数组的建立方法有多种,下面举例明。 Matlab中 字符串数组的建立方法有多种,下面举例明。 直接输入法创建字符串数组。 【例3-1】 直接输入法创建字符串数组。 >> a='hello'; >> b='''你好 你好'''; 你好 >> c=[a,' ',b,'.']; >> a a= hello
在Matlab中,单元数组的建立方法有三种方式 : Matlab中 1、利用赋值语句建立单元数组 【例3-4】 利用赋值语句建立一个单元数组。 】 利用赋值语句建立一个单元数组。 >> A(1,1)={'Matlab'}; >> A(1,2)={'7.0'}; >> A(2,1)={'矩阵 矩阵'}; 矩阵 >> A(2,2)={[1 2 3;4 5 6;7 8 9]}; >> A A= 'Matlab' '7.0' '矩阵 矩阵' [3x3 double] 矩阵 当然,也可以用另外一种方法建立, 当然,也可以用另外一种方法建立,即用花括号括起单元 的下标,在赋值语句的右侧直接指定单元的内容。 的下标,在赋值语句的右侧直接指定单元的内容。如上面的 命令可写成: 命令可写成:
利用单元数组法建立一个单元数组。 【例3-5】 利用单元数组法建立一个单元数组。 >> A={'Matlab',7.0,'矩阵 矩阵',[1 2 3;4 5 6;7 8 9]} 矩阵 A= 'Matlab' [7] '矩阵 [3x3 double] 矩阵' 矩阵
若想与前面的例子显示一致,可以将“7.0”后面的 若想与前面的例子显示一致,可以将“7.0”后面的 逗号改成分号即可。 逗号改 利用函数cell建立单元数组 cell cell函数是用来预分配指定大小的单元数组,其调用格 cell函数是用来预分配指定大小的单元数组, 函数是用来预分配指定大小的单元数组 式如下: 式如下: c=cell(n) 建立n×n单元数组,单元是空矩阵。 建立n 单元数组,单元是空矩阵。 c=cell(m,n)或c=cell([m,n]) 建立m×n单元数组, 建立m 单元数组, 或 单元是空矩阵。 单元是空矩阵。
>> c1 c1 = China changchun ccit >> c2 c2 = China Changchun ccit >> b1 b1 = auto city
>> b2 b2 = film city >> b3 b3 = forest city 在Matlab中,使用以上三个函数来创建字符串时,不 Matlab中 使用以上三个函数来创建字符串时, 需要注意每个字符串变量的长度是否相等。 需要注意每个字符串变量的长度是否相等。 值得注意的是,函数strcat() 注意的是 strcat()在合并字符串的同时会把 值得注意的是,函数strcat()在合并字符串的同时会把 字符串结尾的空格删除。 字符串结尾的空格删除。
A{2,1} = cellarray A{1,2} = 1.0000 + 1.0000i A{2,2} = -3 -2 -1 >> cellplot(A) 0 1 2 3 4 5 6
图3-1 图形方式显示的单元数组
由图3 可见,cellplot命令用大白方格表示各个单元, 由图3-1可见,cellplot命令用大白方格表示各个单元,此 ,cellplot命令用大白方格表示各个单元 例共4个单元,所以有4个白方格;用小方格表示单元内容; 例共4个单元,所以有4个白方格;用小方格表示单元内容;色 彩表示数据类型,由于仅A(2,1)单元的内容为字符型, A(2,1)单元的内容为字符型 彩表示数据类型,由于仅A(2,1)单元的内容为字符型,所以它 的颜色与其余均为数值型的单元内容的颜色不同。 的颜色与其余均为数值型的单元内容的颜色不同。
>> b b= '你好 你好' 你好 >> c c= hello '你好 你好'. 你好 从例3-1中可以看出,创建字符串数组的基本方法就是 从例3 中可以看出, 直接用单引号将一系列字符串括起来, 直接用单引号将一系列字符串括起来,其中的每个字符都 是该字符串的一个元素,通常用两个字节来存储; 是该字符串的一个元素,通常用两个字节来存储;当字符 串文字中包含单引号时,每个单引号符号需要使用2个连续 串文字中包含单引号时,每个单引号符号需要使用2 的单引号字符; 的单引号字符;并且可以直接引用短的字符串构成长的字 符串。 符串。 字符串是特殊的ASCII数值型数组, ASCII数值型数组 注意 :字符串是特殊的ASCII数值型数组,而显示出来的是 字符形式。 字符形式。
用函数celldisp和cellplot将其显示 【例3-7】 建立一个单元数组 用函数 】 建立一个单元数组,用函数 和 将其显示 出来。 出来。 >> clear A >> A(1,1)={[3 2 0;6 3 9;5 5 5]}; >> A(1,2)={1+i}; >> A(2,1)={'cellarray'}; >> A(2,2)={-3:6}; >> A A= [3x3 double] [1.0000 + 1.0000i] 'cellarray' [1x10 double] >> celldisp(A) A{1,1} = 3 2 0 6 3 9 5 5 5
>> ='FFT频谱分析 频谱分析'; 频谱分析 >> experiment.place='数字信号处理实验室 数字信号处理实验室'; 数字信号处理实验室 >> experiment.grade='电子 电子0541班'; 电子 班 >> experiment.grade.group='24组'; 组 >> experiment experiment = name: 'FFT频谱分析 频谱分析' 频谱分析 place: '数字信号处理实验室 数字信号处理实验室' 数字信号处理实验室 grade: [1x1 struct] >> >> experiment.place ans = 数字信号处理实验室 >> experiment.grade ans = group: '24组' 组 >> experiment.grade.group ans = 24组 组
第三节
结构数组的建立
结构数组可以采用直接建立的方法, 结构数组可以采用直接建立的方法,此种方法是直接建立 结构的各个域,同时给各域赋值,结构和域之间用点连接。 结构的各个域,同时给各域赋值,结构和域之间用点连接。在 访问结构数组的各个域时,也是“结构数组名.域名”的格式。 访问结构数组的各个域时,也是“结构数组名.域名”的格式。 当结构带有子域时,需完整地键入结构名、域名、子域名, 当结构带有子域时,需完整地键入结构名、域名、子域名,才 能显示域中的内容。结构数组的各个域可以按照其本身的数 能显示域中的内容。 据类型进行相应的各种运算。 据类型进行相应的各种运算。 采用直接法建立一个结构数组。 【例3-8】 采用直接法建立一个结构数组。
>> A{1,1}='Matlab'; >> A{1,2}='7.0'; >> A{2,1}='矩阵 矩阵'; 矩阵 >> A{2,2}=[1 2 3;4 5 6;7 8 9]; >> A A= 'Matlab' '7.0' '矩阵 矩阵' 矩阵 [3x3 double]
2、利用单元数组法建立单元数组 建立单元数组时,可以在花括号中直接赋值,单元与单元 建立单元数组时,可以在花括号中直接赋值, 之间用逗号、空格或分号隔开。 之间用逗号、空格或分号隔开。
码创建字符串数组。 【例3-2】 利用 】 利用ASCII码创建字符串数组。 码创建字符串数组 >> b='你好 你好'; 你好 >> ASCIIb=double(b); >> c=char(ASCIIb); >> b b= 你好 >> ASCIIb ASCIIb = 20320 22909 >> c c= 你好
>> C(1,1)={'The Grate Wall'} C= 'The Grate Wall' [] [] [] [] [] [] [] [] >> C(1,2)={'The Summer Palace'} C= 'The Grate Wall' 'The Summer Palace' [] [] [] [] >> C(2,1)={[1 2;2 1]} C= 'The Grate Wall' 'The Summer Palace' [2x2 double] [] [] []
相关文档
最新文档