欢迎来到天天文库
浏览记录
ID:36193913
大小:198.00 KB
页数:44页
时间:2019-05-07
《ch3 字符串、元胞及构架数组》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、策三章字符串数组、元胞数组和构架数组本章介绍MATLAB另外三类数据类型:CharacterStringArrayCellarrayStructurearray13.1字符串数组CharacterStringArrayMATLAB真正强有力的地方在于它的数值处理能力。然而也经常需要对文本进行操作,例如把标号和标题放在图上。在MATLAB里,文本就是字符串。字符串对MATLAB的符号计算、程序设计、数据可视化、GUI制作等都是不可缺少的知识基础和工具。尤其是图形用户界面设计中涉及到许多图形对象的属性及其取值,都需要通过字符数
2、组的处理来完成。本节内容包括如何建立字符串数组,并讨论字符串的查找、替换和如何作字符串与数值间的转换等。2创建方式:把一系列字符放在一对单引号里就定义了一个字符串。Example:A='hello'whosclass(A)ischar(A)3.1.1字符串入门字符串与数值是两种不同的数据类型,它们的创建方式也就不同。数值变量是通过在指令窗中数字赋值创建的。而字符变量的方式是:把待建的字符串放在“单引号”对中再按回车键。观察内存变量判断A的类型检测是否为字符串33.1.2串数组的属性和标识【例3.1-2】本例演示:串的基本属
3、性、标识和简单操作。(1)创建串数组a='Thisisanexample.'a=Thisisanexample.(2)串数组a的大小size(a)ans=119把空格也作为一个字符!!(3)串数组的元素标识a14=a(1:4)%提出一个子字符串ra=a(end:-1:1)%字符串的倒排a14=Thisra=.elpmaxenasisihT4MATLAB内部用与每个字符相应的数值(ASCII码)来代表字符。可以用函数double和char来实现字符和相应的ASCII码数值之间的转换。(4)串数组的ASCII码ascii_a=
4、double(a)%产生ASCII码char(ascii_a)%把ASCII码变回字符串(5)对字符串ASCII码数组的操作%使字符串中字母全部大写w=find(a>='a'&a<='z');%找出串数组a中,小写字母的元素位置。ascii_a(w)=ascii_a(w)-32;%大小写字母ASCII值差32.用数值加法改变%部分码值。char(ascii_a)%把新的ASCII码翻成字符实际转换大小写的指令是upper和lowerABC…Zabc…z字母的大小顺序:5(6)中文字符串数组A='这是一个算例。';%创建中文
5、字符串A_s=size(A)%串数组的大小A56=A([56])%取串的子数组ASCII_A=double(A)%获取ASCII码char(ASCII_A)%把ASCII码翻译成字符(7)创建带单引号的字符串,双引号作为一个单引号。b='Example''4.1.2-1'''b=Example'4.1.2-1'(8)由小串构成长串ab=[a(1:7),'',b,'.']%这里第2个输入为空格串ab=ThisisExample'4.1.2-1'6重要函数:doublecharupperlower73.1.3复杂串数组的创建一
6、、直接创建多行串数组S=['Thisstringarray''hasmultiplerows.']size(S)MATLAB可以创建二维字符数组,创建方法有两种:直接创建多行串数组时必须注意:和数值数组一样,二维字符数组每一行必须具有相同的长度。若其中一行的长度短于其他行,则此字符数组是无效的。例如:下列语句是错误的。S=['Thisstringarray''hasmultiplerows.']17个字符18个字符改成:S的大小:创建二维串数组的简便方法是使用串操作函数。8二、利用串操作函数创建多行串数组S1=char('
7、Thisstringarray','hastworows.')S3=strvcat('这','字符','串数组','','由4行组成')size(S3)93.1.4转换函数产生数码字符串数值和字符在MATLAB中是两个完全不同的概念,而且存储方式也有很大的区别。在MATLAB内部,数值1和字符串“1”是完全不同的。数值1采用双精度进行保存,占用8个字节(64位),而字符串“1”则只用两个字节来保存它的ASCII码值。MATLAB提供了一些在数值和字符串之间进行转换的函数。数码字符串对于图形的标注是非常有用的。在图形的标注中
8、,字符串中往往包含有数值,用转换函数把其中的数值转换成字符串。最常用的数组/字符串转换函数有:int2strnum2strmat2str10int2strIntegertostringconversionSyntaxstr=int2str(N)Class(str)Descriptionstr=int2s
此文档下载收益归作者所有