资源描述:
《matlab 字符串数组这应该是最好的学matlab的ppt了.ppt》由会员上传分享,免费在线阅读,更多相关内容在PPT专区-天天文库。
1、3.1字符串入门3.2串数组的属性和标识3字符串数组3.3复杂串数组的创建3.4综合示例演示字符串的创建是把待建的字符放在“单引号对”中。注意:“单引号对”必须在英文状态下输入。与数值数组相比,重要性较小,但不可缺少,在数据的可视化、图形用户界面的制作等方面有重要应用。3.1字符串入门——看演示,注意:class,size命令的使用数值标量在内存中存放时需要8个字节,而一个字符的存放需要2个字节。(1)创建串数组——英文状态下的单引号【例3.2-1】本例演示:串的基本属性、标识和简单操作。3.2串
2、数组的属性和标识——看演示,体会串数组的使用>>a=‘Thisisanexample’(2)计算串数组的大小——size>>size(a)(3)串数组的元素标识——类似于数值数组标识法>>a14=a(1:4)%提出一个子字符串>>ra=a(end:-1:1)?(4)串数组的ASCII码——abs和double都可获取串数组所对应的ASCII数值数组3.2串数组的属性和标识>>ascii_a=double(a)>>char(ascii_a)%把ascii码变回原字符(5)对字符串ASCII码数组的操作下
3、面例子实现使字符串中字母都大写:在char把数值转换为字符时,负数将导致“警告”;非整数部分将被截尾。中文字符能被char和double正确转换。由于ASCII码是数值数组,所以第二章中所述的各种运算函数和操作对ASCII码数组都适用。>>w=find(a>=‘a’&a<=‘z’);%找出串a中小写字母元素位置>>ascii_a(w)=ascii_a(w)-32;%大小写字母ASCII值差32>>char(ascii_a)upper指令也可直接实现3.2串数组的属性和标识(6)中文字符串数组看下例,考
4、虑输出的结果:中文字符创建时一定要特别注意:字符外面的“单引号对”必须在英文状态下输入,即必须是英文的“单引号”。与英文字符一样,每个中文字符也占一个元素位置。但应注意,中文的ASCII码大于256。>>A=‘这是一个算例。’;>>A_s=size(A)>>A56=A([56])>>ASCII_A=double(A)>>char(ASCII_A)——看演示,体会中文串数组的使用3.2串数组的属性和标识(7)创建带单引号的字符串看下例:当串中文字包含(英文)单引号时,每个单引号字符用“连续的2个单引号符
5、”表示。>>b=‘Example‘’3.2-1’’’>>A_s=size(A)>>a=‘Thisisanexample’;>>b=‘Example‘’3.2-1’’’>>ab=[a(1:7),’‘,b,’.’]——看演示,体会串数组的使用(8)由小串构成长串3.3复杂串数组的创建一、多行串数组的直接创建多行串数组的直接输入示例:关键是要保证同一串数组的各行字符数要相等,即保证各行等长。为此,有时不得不用空格符的增减来调节。中文字符能被char和double正确转换。>>clear>>S=[‘Thiss
6、tringarray‘%15各字母+3个空格‘hasmultiplerows.’%连句号共16+2个空格>>size(S)空格麻烦二、利用串操作函数函数创建多行串数组-char,str2mat,strvcat>>S1=char(‘Thisstringarray’,’hastworows.’)>>S2=str2mat(‘这’,‘字符’,‘串数组’,’由4行组成’)>>S3=strvcat(‘这’,‘字符’,‘串数组’,’‘,’由4行组成’)>>size(S3)——看演示,体会串数组的使用简洁3.2串数组
7、的属性和标识三、转换函数产生数码字符串最常用的数组/字符串转换函数:int2str:把整数数组转换成串数组(非整数将被四舍五入后再转换)。num2str:把非整数数组转换为串数组(常用于图形中数据点的标识)>>rand(‘state’,0)>>B=rand(2,4)>>B3=num2str(B,3)%保留3位有效数字,转换为串——看演示,体会串数组的使用看下面的例子:3.4综合示例演示cleara=2;w=3;t=0:.01:10;%自变量y=exp(-a*t).*sin(w*t);%计算相应函数值[
8、y_max,i_max]=max(y);%找最大值元素位置,i_max是函数数组最大值所对应的的位置t_text=['t=',num2str(t(i_max))];%生成最大值点的横坐标字符串y_text=['y=',num2str(y_max)];%生成最大值点的纵坐标字符串max_text=char('maximum',t_text,y_text);%生成标志最大值点的字符串tit=['y=exp(-',num2str(a),'t)*sin(',nu