MATLAB之第二讲矩阵与多项式运算.ppt_第1页
MATLAB之第二讲矩阵与多项式运算.ppt_第2页
MATLAB之第二讲矩阵与多项式运算.ppt_第3页
MATLAB之第二讲矩阵与多项式运算.ppt_第4页
MATLAB之第二讲矩阵与多项式运算.ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

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

文档简介

1、第三讲 Matlab 的字符串及基本绘图功能,第五章 字符串和其它数据类型,Matlab 的数据类型:,1.数值数组(Numeric Array),2.字符串(Strings)类型 也叫字符数组(Character Arrays),3.元胞数组 也叫单元数组(Cell Array),4.结构体数组(Structure Array),字符串及其基本操作,help strfun,字符串用一对单引号(, ,)来定义,字符串里的字符可以是英文字母,也可以是数字或者汉字 ,甚至空格。,注意:变量名的定义规则,不能含,汉字。, s=student,s = student, s=学生,s = 学生, s=9

2、131和9134班的学生,s = 9131和9134班的学生, whos,Name Size Bytes Class s 1x7 14 char array Grand total is 7 elements using 14 bytes, name=Mary;s=student;, s1=name s,s1 = Marystudent, s3=name blanks(3);s,s3 = Mary student, s2=name, is a good ,s,.,s2 = Mary is a good student.,length(), size(), length(s1) %求字符串的长度

3、,ans = 11,s1 =Marystudent %上面获得的字符串,s3 = Mary student, size(s3),ans = 2 7, name1=s1(1:5) %冒号操作,name1 = Marys,注意:长字符串可以采用分段表示的方法。, keep=. I went to work by bicycle, while my students went to school by foot,keep = I went to work by bicycle, while my students went to school by foot,1) 字符和ASCII值的转换,doub

4、le( ),char( ), str=double(s1),str = 77 97 114 121 115 116 117 100 101 110 116, str=char(str),str = Marystudent,2) 二维字符数组的生成,当创建一个二维数组时,必须确认每一行具有相同的长度。,如果想用不同长度的字符串创建字符数组,可以在短的字符串后面以空格补足,使得它们等长,空格可以直接输入,也可以用函数blanks() 。,How are you doing;I am fine, length(How are you doing),ans = 17, length(I am fine

5、),ans = 9, str=How are you doing;I am fine ,str = How are you doing I am fine, str=How are you doing;I am fine blanks(8),str = How are you doing I am fine,一个更简单的方法是用char()函数来创建字符数组。, str=char(How are you doing?,I am fine.),str = How are you doing? I am fine.,用deblank()函数来删除所有补充的空格, trimstr=deblank(s

6、tr(2,:),trimstr = I am fine., size(trimstr),ans = 1 10,3) 字符串比较,Matlab 里包含以下几种比较字符串和字符子串的方法。 比较两个字符串或是两个字符串的子串是否相同。 比较两个字符串中的单独字符是否相同。 对字符串的元素进行识别,判定每一个元素是字符还是 空白符(包括空格、制表符(tab)和换行符)。, s1=while;s2=white;, strcmp(s1,s2) % 判断两个字符串是否相等,为“真”,则等于1否则等于0。,ans = 0,这和C语言正好是相反的,C语言中当两个字符串相等时返回0值。, strncmp(s1,

7、s2,3) %若字符串前3个字符相同,则判为“真”,返回值为1。,ans = 1, A=hate;, B=wake;, A=B,ans = 0 1 0 1, =, , =, !=,class()、ischar(), class(A) %判断变量的类型,ans = char, ischar(A) %如果是字符则返回值为1,ans = 1, SS=Buiding 34;, A=isletter(SS),isletter() %以逻辑1指示s里文字符的位置,isspace() %以逻辑1指示s里空格符的位置,A = 1 1 1 1 1 1 1 0 0 0, B=isspace(SS),B = 0 0

8、 0 0 0 0 0 1 0 0,4)字符串查找和替换,strrep() % 替换, label=Sample 1,10/28/95;, newlabel=strrep(label,28,30),newlabel = Sample 1,10/30/95, position=findstr(amp,label),findstr() %查找起始字符的下标,position = 2,upper() % 使字符串大写, name=upper(matlab),name = MATLAB,strtok() %找出第一个间隔符前的内容, text=Monday,Tuesday,Wednsday,.;, da

9、y,rest=strtok(text,) %day分隔符前的内容,rest剩下的内容,day = Monday rest = ,Tuesday,Wednsday,., day,rest=strtok(text,a) %找出第一个a字母前的内容,day = Mond rest = ay,Tuesday,Wednsday,.,5)字符串/数值转换,int2str(), x=1024;, y=int2str(x), size(y),y = 1024,ans = 1 4,num2str(), p=num2str(pi,15) %第二个参数用于指定输出字 符串的数字位数(不包含小数点),p = 3.14

10、159265358979, p=num2str(12.8,4),p = 12.8,dec2hex(), dec_num=1020;, hex_num=dec2hex(dec_num),hex_num = 3FC,mat2str(), A=1 2 3;4 5 6;7 8 9;, B=mat2str(A),B = 1 2 3;4 5 6;7 8 9, size(B) ans = 1 19,eval(), rand(state,0) %随机函数清零, a=rand(2,2) %产生2x2随机矩阵, ss=sprintf(%.10en,a) %以10位数科学计数字符串显示,且每写一个元素换一行。,ss

11、 = 9.5012928515e-001 2.3113851357e-001 6.0684258354e-001 4.8598246871e-001, fprintf(%.5g,a) %以5位数位最短形式显示。,0.950130.231140.606840.48598, ssca=sscanf(ss,%f,3,2) %以浮点格式 把字符串转换成(3x2)矩阵,ssca = 0.9501 0.4860 0.2311 0 0.6068 0,fprintf(),sprintf(),sscanf(),第六章 Matlab基本绘图功能,二维图形的绘制,1.1 基本绘图函数,1.2 绘制二维图形的一般步骤

12、,3 二维图形绘图的基本操作,plot的基本调用格式,plot(x,y),plot(y),plot(x,y,str),plot(x1,y1,str1,x2,y2,str2, .), t=(0:pi/50:2*pi);, k=0.4:0.1:1;, Y=cos(t)*k;, plot(t,Y) %绘图结果见图, t=(0:pi/100:pi); %准备数据, y1=sin(t)*1,-1;, y2=sin(t).*sin(9*t);, t3=pi*(0:9)/9;, y3=sin(t3).*sin(9*t3);, plot(t,y1,b:,t,y2,k-,t3,y3,ro) %绘图结果见图, a

13、xis(0 pi -1 1) %控制坐标轴范围,edit plot,edit plot,axis(V),V=x1,x2,y1,y2,V=x1,x2,y1,y2,z1,z2,x1x2,y1y2,z1z2,坐标、刻度和分格线控制,坐标控制,刻度设置,set(gca,Xtick,xs,Ytick,ys),set(gca,Xtick,xs,Ytick,ys,Ztick,zs),分格线:,grid 是否画分格线的双向切换指令。 grid on 画出分格线。 grid off 不画出分格线。,坐标框:,box 坐标形式在封闭式和开启式之间切换指令。 box on 使当前坐标成封闭形式。 box off 使

14、当前坐标呈开启形式。, grid on %画出分格线 box off %坐标呈开启形式, box off %坐标呈封闭形式,图形标识, x=-pi:0.02*pi:pi; plot(x,cos(x),k-.,x,sin(x),b-) %画出曲线 axis(-pi,pi,-1,1) %控制坐标轴范围 xlabel(x=-pi to pi,FontSize,16) %给x轴加标注 ylabel(My y-axis,FontSize,16) %给y轴加标注 text(-pi/2,cos(pi/2),leftarrowcos(x)=0) %在图形制定的位置上加 文本字符串 title(例:图形标识命令

15、使用) %给图形加标题 legend(余玄曲线,正玄曲线) %给图形加注解,多次叠绘、双纵坐标和多子图,多次叠绘,hold on:保持当前的图形不被刷新,允许在当前图形状态下绘制其他徒刑, 即在同一图形窗口中绘制多幅曲线。 hold off: 释放当前的图形,绘制的下一幅图形将作为当前图形, 即覆盖原来图形。 hold: 当前图形是否具备刷新功能的双向切换开关。, hold on y=cos(x).*sin(x); plot(x,y,r-) legend(余玄曲线,正玄曲线,cos(x).*sin(x),y=cos(x).*sin(x),双纵坐标图,plotyy(),plotyy的基本指令包括

16、: plotyy(x1,y1,x2,y2) 以左、右不同纵轴绘制x1-y1,x2-y2两条曲线; plotyy(x1,y1,x2,y2,FUN) 以左、右不同纵轴将x1-y1,x2-y2绘制成FUN制定形 式的两条曲线; plotyy(x1,y1,x2,y2,FUN1,FUN2)以左、右不同纵轴将x1-y1,x2-y2绘制成 FUN1,FUN2制定的不同形式的两条曲线。,FUN,FUN1和FUN2,将系统,的幅频特性和相频特性绘制在一张图中。, x=0.01:0.002:100; y=20*log(10./sqrt(1+x.*x); z=-atan(x)*57.3; plotyy(x,y,x,

17、z,semilogx) xlabel(Frequency) ylabel(Amplitute) gtext(Amplitute) %在鼠标所点的位置上加文本字符串 gtext(Phase) ylabel(Phase),多子图,基本指令是: subplot(m,n,k) 或 subplot(mnk),表示使m x n 幅子图中的第k幅成为当前图。, t=0:pi/20:2*pi; x,y=meshgrid(t); %生成方阵 subplot(221),plot(sin(t),cos(t) axis(-1 1 -1 1) z=sin(2*x)+cos(2*y); subplot(222),plot

18、(t,z) axis(0 2*pi -2 2) z=sin(x).3.*cos(y); subplot(223),plot(t,z) axis(0 2*pi -1 1) z=(sin(x).3)-(cos(y).3); subplot(224),plot(t,z) axis(0 2*pi -1 1),4 特殊二维绘图函数, t=-10:1:10; subplot(2,2,1); bar(t,cos(t); %直方图 subplot(2,2,2); compass(t,cos(t); %罗盘图 subplot(2,2,3); rose(t,cos(t); %极坐标累计图 subplot(2,2,

19、4); fill(t,cos(t),b); %实心图,2. 三维图形的绘制,2.1 基本绘图函数,2.2 三位绘图的基本操作,利用plot3指令绘制三维图形,plot3的基本调用格式: plot3(x,y,z,str) 输出以向量x, 向量y和向量z分别为x,y,z和轴的图形, x,y,z必须具有相同的长度。 plot3(x1,y1,z1,str1,x2,y2,z2,str2, .) 在一幅图中,用str1指定的方式输出 以x1,y1,z1分别为x,y,z坐标的图形。用str2指定的方式,输出以x2,y2,z2分别为x,y,z坐标的图形。 其中str,str1,str2用来指定线型、色彩和数据点型。, t=0:pi/50:10*pi; plot3(sin(2*t),cos(2*t),t

温馨提示

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

评论

0/150

提交评论