预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

字符串、元胞和构架数组MATLAB6.x版的内建数据类型(Built-indatatype)就有5种以上,此外还有许多其他专门设计的类(Class),如符号类、内联函数类、控制工具包中的线性时不变模型类、神经网络类等。就程序设计而言,MATLAB6.x版采用了面向对象编程技术。数据和编程的改变使用户能更简捷而自然地解决复杂的计算问题(如符号计算问题、多变量控制系统问题、神经网络问题)。本章内容根据MATLAB6.5编写,但绝大部分内容适用于其他MATLAB6.x版本。第二章介绍了数值数组(NumericArray),这是读者比较熟悉的数据类型。本章将集中讲述另外三类数据:字符串数组(CharacterStringArray)、元胞数组(Cellarray)和构架数组(Structurearray)。它们之间的基本差别见表3-1。表3-1四种数据类型基本构成比较表数组类型基本组分组分内涵基本组分占用字节数数值数组元素双精度实数标量或双精度复数标量816字符串数组元素字符2元胞数组元胞可以存放任何类型、任何大小的数据。不定构架数组构架只有挂接在构架上的“域”才能存放数据。数据可以是任何类型、任何大小。不定字符串数组字符串入门【例3.1.1-1】先请读者实际操作本例,以体会数值量与字符串的区别。cleara=12345.6789class(a)a_s=size(a)a=1.2346e+004ans=doublea_s=11b='S'class(b)b_s=size(b)b=Sans=charb_s=11whosNameSizeBytesClassa1x18doublearraya_s1x216doublearrayans1x48chararrayb1x12chararrayb_s1x216doublearrayGrandtotalis10elementsusing50bytes串数组的属性和标识【例3.1.2-1】本例演示:串的基本属性、标识和简单操作。(1)a='Thisisanexample.'a=Thisisanexample.(2)size(a)ans=119(3)a14=a(1:4)ra=a(end:-1:1)a14=Thisra=.elpmaxenasisihT(4)ascii_a=double(a)ascii_a=Columns1through128410410511532105115329711032101Columns13through191209710911210810146char(ascii_a)ans=Thisisanexample.(5)w=find(a>='a'&a<='z');ascii_a(w)=ascii_a(w)-32;char(ascii_a)ans=THISISANEXAMPLE.(6)A='这是一个算例。';A_s=size(A)A56=A([56])ASCII_A=double(A)A_s=17A56=算例ASCII_A=Columns1through6547545191153947473505219549405Column741379char(ASCII_A)ans=这是一个算例。(7)b='Example''3.1.2-1'''b=Example'3.1.2-1'(8)ab=[a(1:7),'',b,'.']ab=ThisisExample'3.1.2-1'.复杂串数组的创建多行串数组的直接创建【例3.1.3.1-1】多行串数组的直接输入示例。clearS=['Thisstringarray''hasmultiplerows.']S=Thisstringarrayhasmultiplerows.size(S)ans=218利用串操作函数创建多行串数组【例3.1.3.2-1】演示:用专门函数char,str2mat,strvcat创建多行串数组示例。S1=char('Thisstringarray','hastworows.')S1=Thisstringarrayhastworows.S2=str2mat('这','字符','串数组','','由4行组成')S2=这字符串数组由4行组成S3=strvcat('这','字符','串数组','','由4行组成')S3=这字符串数组由4行组成size(S3)ans=55转换函数产生数码字符串【例3.1.3.3-1】最常用的数组/字符串转换函数int2str,num2str,mat2str示例。(1)A=eye(2,4);A_str1=int2str(A)A_str1=10000100(2)rand('state',0)B=rand(2,4);B3=num2str(B,3)B3=0.950.6070.8910.4