matlab 第二讲.ppt
《matlab 第二讲.ppt》由会员分享,可在线阅读,更多相关《matlab 第二讲.ppt(160页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、q 字符串和字符数组字符串和字符数组n 字符串必须用字符串必须用单引号单引号括起来括起来n 字符串是由多个字符组成的字符串是由多个字符组成的字符行向量字符行向量字符与字符串字符与字符串q 字符与字符串运算是各种高级语言不可缺少的字符与字符串运算是各种高级语言不可缺少的部分,部分,Matlab具有强大的字符处理能力。具有强大的字符处理能力。str1=Matrix Laboratorystr2=M,a,t,r,i,xn 字符数组必须是方的,即每行的字符个数必须相等字符数组必须是方的,即每行的字符个数必须相等str3=M,a,t;r,i,xq 字符串中的每个字符(包括空格)都是字符串的一个元素字符串
2、中的每个字符(包括空格)都是字符串的一个元素字符与字符串字符与字符串str=Matrix;str(3)size(str)str=Matrix;double(str(3);double(str);q Matlab中字符是以中字符是以 ASCII 码存储的,因而码存储的,因而区分大小写区分大小写,可,可用用 double 函数查看一个字符的函数查看一个字符的 ASCII 码码q 使用使用 char 函数函数ASCII 码码 字符串字符串字符串的生成字符串的生成q 直接赋值直接赋值str1=Matrix;str2=Laboratory;str=str1,str2;str=char(77,97,116
3、,108,97,98)str=char(str1,str2)l 生成一个字符数组,第一行为生成一个字符数组,第一行为 str1,第二行为,第二行为 str2l 数值矩阵到字符数组:数值矩阵到字符数组:num2str、int2str、mat2strl 字符数组到数值数组:字符数组到数值数组:str2num字符串与数值数组字符串与数值数组q 字符串、字符数组与数值数组之间的转换字符串、字符数组与数值数组之间的转换u 按按 ASCII 码转换码转换l 字符数组到数值数组:字符数组到数值数组:doublel 数值数组到字符串:数值数组到字符串:charu 直接将转换数值数组转换成字符数组直接将转换数值
4、数组转换成字符数组举例举例a=97,97.3;97.8,98;str1=char(a);str2=num2str(a);str3=int2str(a);str4=mat2str(a);l char 的输入参数范围为的输入参数范围为 0,65535,当输入参数中有,当输入参数中有小数时,直接将小数部分舍去。小数时,直接将小数部分舍去。l num2str 直接将每个数字转换成字符直接将每个数字转换成字符l mat2str 把整个矩阵转换成字符把整个矩阵转换成字符行向量行向量,包括矩阵,包括矩阵中的中的方括号方括号、空格空格 和和 分号分号(逗号自动去除)(逗号自动去除)举例举例str5=mat2s
5、tr(97,97.3;97.8,98);l 数值数组转换为字符数组后,表面上看数值数组转换为字符数组后,表面上看象一个数值数象一个数值数组组,但此时的元素是字符而不是数字!,但此时的元素是字符而不是数字!a=1,2,3b=num2str(a)c=2*ad=2*be=2*str2num(b)double、char 是按是按 ASCII码码 进行转换进行转换num2str、int2str、mat2str、str2num 是直接进行转换是直接进行转换字符串的合并字符串的合并q 水平水平合并合并u 直接使用中括号直接使用中括号u 使用使用 strcat 函数函数 str1=hello,world!st
6、r2=strcat(hello,world!)l 使用使用 strcat 时,自动去除时,自动去除原字符串原字符串结尾处的空格结尾处的空格l 水平水平合并合并得到的是一个更长的字符串得到的是一个更长的字符串 字符串的合并字符串的合并q 垂直垂直合并合并u 直接使用中括号直接使用中括号u 使用使用 strvcat 函数函数 str3=Matrix ;Laboratorystr4=strvcat(Matrix,Laboratory)l 在中括号中用在中括号中用分号分号实现垂直实现垂直合并合并,必须保证每个字符,必须保证每个字符串串的的长度相等,否则需用空格补齐长度相等,否则需用空格补齐l 用用 s
7、trvcat 合并合并,自动为较短的字符串,自动为较短的字符串补充补充空格空格l 垂直合并垂直合并得到的是一个字符得到的是一个字符数组数组 运行字符串运行字符串q 运行字符串所表示的表达式或命令:运行字符串所表示的表达式或命令:evalstr=1+2;a=eval(str)str=A=magic(3);eval(str)str1=figure(1);mesh(peaks(60);str2=figure(2);waterfall(peaks(60);eval(str1)eval(str2)函 数功 能函 数功 能strcmp比较字符串strrep替换字符串strcmpi忽略大小写比较字符串str
8、ncmp比较字符串的前n个字符upper转换为大写lower转换为小写blanks产生空字符串deblank删除字符串中的空格strmatch查找匹配的字符串findstr在一个字符串中查找另一字符串strjust对齐字符数组,包括左对齐,右对齐和居中strtok返回字符串中第一个分隔符(空格,回车和Tab键)前的部分字符串相关函数字符串相关函数q Matlab 作图作图Matlab 绘图绘图u 给出离散点列:给出离散点列:x=0:pi/10:2*piu 计算函数值:计算函数值:y=sin(x)u 画图:用画图:用 matlab 二维绘图命令二维绘图命令 plot 作出函数图形作出函数图形 p
9、lot(x,y)例例:x=0:pi/10:2*pi;y=sin(x);plot(x,y);Matlab 二维作图二维作图u plot(x,y)q 基本形式基本形式 x,y 都是向量,则以都是向量,则以 x 中元素为横坐标,中元素为横坐标,y 中元素为中元素为纵坐标作平面曲线。此时纵坐标作平面曲线。此时 x,y 必须具有必须具有相同长度相同长度。x,y 都是矩阵,则将都是矩阵,则将 x 的列和的列和 y 中相应的列相组合,中相应的列相组合,绘制多条平面曲线。此时绘制多条平面曲线。此时 x,y 必须具有必须具有相同的大小相同的大小。x 是向量是向量,y 是矩阵,若是矩阵,若 x 的长度与的长度与
10、y 的行数相等,的行数相等,则将则将 x 与与 y 中的各列相对应,绘制多条平面曲线;否中的各列相对应,绘制多条平面曲线;否则,若则,若 x 的长度与的长度与 y 的列数相等,则将的列数相等,则将 x 与与 y 中的各中的各行相对应,绘制多条平面曲线。此时行相对应,绘制多条平面曲线。此时 x 的长度必须等的长度必须等于于 y 的行数或列数的行数或列数。plot 举例举例 x=0:0.1:4*pi;y=cos(x);plot(x,y);例例:y=cos(x)在在 0,4*pi 上的图像上的图像自己动手指出以下各个绘图命令的输出图形分别是什么,并上机验证指出以下各个绘图命令的输出图形分别是什么,并
11、上机验证 t=0 1;x=1 2;y=x;3 4;z=y;5 6;plot(t,x);plot(t,y);plot(t,y);plot(t,z);plot(t,z);Matlab 二维作图二维作图u plot(y):绘制绘制向量向量 y 中中元素的线性图元素的线性图q 基本形式基本形式(续)(续)例例:y=0,0.48,0.84,1,0.91,6.14;plot(y);figure(2);plot(1:length(y),y)自己动手x=1:length(y);plot(x,y);以下标为横坐标,元素值为纵坐标,以下标为横坐标,元素值为纵坐标,等价于:等价于:plot(Y):当当 Y 是矩阵时
12、的图形是什么?是矩阵时的图形是什么?Y=1 2;3 5;6 9;plot(Y);plot(Y);q 点和线的基本属性点和线的基本属性图形的属性图形的属性u plot(x,y,string)其中其中 string 是用是用 单引号单引号 括起来的字符串,用来指定图括起来的字符串,用来指定图形的属性形的属性(点、线的形状和颜色)(点、线的形状和颜色)属性可以全部指定,也属性可以全部指定,也可以只指定其中某几个可以只指定其中某几个排列顺序任意排列顺序任意红色、虚线、红色、虚线、离散点用加号离散点用加号蓝色、点划线蓝色、点划线离散点为菱形离散点为菱形黑色、实线黑色、实线离散点用星号离散点用星号 x=0
13、:0.2:2*pi;plot(x,cos(x);plot(x,cos(x),r+:);plot(x,cos(x),bd-.);plot(x,cos(x),k*-);图形的基本属性图形的基本属性线型线型点标记点标记颜色颜色-实线实线:虚线虚线-.-.点划线点划线-间断线间断线.点点o o 小圆圈小圆圈x x 叉子符叉子符+加号加号*星号星号s s 方格方格d d 菱形菱形 朝上三角朝上三角v v 朝下三角朝下三角 朝右三角朝右三角 legend(cos(x);text(pi/2,cos(pi/2),leftarrowy=cos(x);xlable,ylabel,text 命令也可以指定文本的属性
14、其他相关命令其他相关命令u 保持当前窗口的图像hold on 或或 hold offu 新建绘图窗口figure(n)u 显示网格grid on 或或 grid off其他相关命令其他相关命令u 划分绘图区域subplot(m,n,p)怎样在一个怎样在一个绘图区域绘图区域内绘制多个函数的图像内绘制多个函数的图像?将一个绘图窗口分割成将一个绘图窗口分割成 m*n 个子区域,并个子区域,并 按行按行 从左至从左至右右 依次编号依次编号。p 表示第表示第 p 个绘图子区域。个绘图子区域。x=-pi:pi/10:pi;subplot(2,2,1);plot(x,sin(x);subplot(2,2,2
15、);plot(x,cos(x);subplot(2,2,3);plot(x,x.2);subplot(2,2,4);plot(x,exp(x);例例:同时绘制多个函数图像同时绘制多个函数图像u plot(x1,y1,s1,x2,y2,s2,.,xn,yn,sn)属性选项属性选项可以省略可以省略等价于:等价于:hold onplot(x1,y1,s1)plot(x2,y2,s2).plot(xn,yn,sn)图形的其他属性图形的其他属性 x=-pi:pi/10:pi;y=sin(x);plot(x,y,rh:,linewidth,2,.markeredgecolor,b,.markerfacec
16、olor,g)例例:q 线条的粗细,字体大小,坐标轴属性等。linewidth:指定线条的粗细指定线条的粗细markeredgecolor:指定标记的边缘色指定标记的边缘色markerfacecolor:指定标记表面的颜色指定标记表面的颜色注:注:1)属性与属性的值是成对出现的属性与属性的值是成对出现的 2)更多属性参见更多属性参见 plot 的联机帮助的联机帮助空间三维作图空间三维作图q 三维曲线:plot3设三维曲线的参数方程为:x=x(t),y=y(t),z=z(t),则其图形可由下面的命令绘出:例:例:三维螺旋线三维螺旋线plot3的用法与的用法与 plot 类似类似 t=0:0.1:
17、10*pi;x=2*t;y=sin(t);z=cos(t);plot3(x,y,z);plot3(x,y,z,s)空间三维作图空间三维作图q 空间曲面 空间三维作图空间三维作图q 空间曲面 mesh(Z)绘出矩阵绘出矩阵 Z 的三维消隐图。的三维消隐图。mesh(x,y,Z)x,y 是向量时,是向量时,length(x)=n,length(y)=m,m,n=size(Z)mesh(X,Y,Z,C)绘制由矩阵绘制由矩阵 X,Y,Z 所确定的曲面所确定的曲面网格图网格图,矩阵矩阵 C 用于确定网格颜色,省略时用于确定网格颜色,省略时 C=Z。mesh,meshc,meshzmeshc调用方式与调用
18、方式与 mesh 相同,在相同,在 mesh 基础上增加等高线基础上增加等高线meshz调用方式与调用方式与 mesh 相同,在相同,在 mesh 基础上屏蔽边界面基础上屏蔽边界面空间三维作图空间三维作图u 网格生成函数:meshgridx,y 为给定的向量,为给定的向量,X,Y 是网格划分后得到的网格矩阵是网格划分后得到的网格矩阵u 绘制由函数 z=z(x,y)确定的曲面时,首先需产生一个网格矩阵,然后计算函数在各网格点上的值。若 x=y,则可简写为 X,Y=meshgrid(x)X,Y=meshgrid(x,y)x=-8:0.5:8;y=-8:0.5:8;X,Y=meshgrid(x,y)
19、;r=sqrt(X.2+Y.2)+eps;Z=sin(r)./r;mesh(X,Y,Z)例:空间三维作图空间三维作图q 空间曲面其它作图函数 u sphere(n)专用于绘制单位球面专用于绘制单位球面mesh 绘制网格图,surf 绘制着色的三维表面图u surf(X,Y,Z)绘制由矩阵绘制由矩阵 X,Y,Z 所确定的曲面图,参数所确定的曲面图,参数含义同含义同 meshsphere 只能画单位球面!只能画单位球面!自己动手绘制球面绘制球面 x2+y2+z2=16surf 作图举例作图举例 X,Y=meshgrid(-8:0.5:8);r=sqrt(X.2+Y.2)+eps;Z=sin(r).
20、/r;surf(X,Y,Z)mesh 与与 surf 的比较的比较u ezplot(f)Matlab 符号作图符号作图q 二维曲线绘图:ezplotu ezplot(f,a,b)u ezplot(f(x,y)u ezplot(f(x,y),a,b,c,d)u ezplot(f,g,a,b)缺省的绘图区间为缺省的绘图区间为-2,2 例:ezplot 作图作图Matlab 符号作图符号作图q 空间曲线绘图:ezplot3缺省的绘图区间为缺省的绘图区间为 0,2 u ezplot3(x,y,z,a,b)u ezplot3(x,y,z)Matlab 符号作图符号作图q 空间曲面绘图:ezmesh、ez
21、surfu ezmesh(z(x,y),a,b,c,d)u ezmesh(z(x,y),a,b)u ezmesh(z(x,y)u ezmesh(x(s,t),y(s,t),z(s,t),a,b,c,d)u ezmesh(x(s,t),y(s,t),z(s,t),a,b)u ezmesh(x(s,t),y(s,t),z(s,t)ezsurf 的用法与 ezmesh 相同q 细胞变量的表示方法类似于带有下标的数组,但细胞变量的表示方法类似于带有下标的数组,但这些下标不是用圆括号括起来,而是使用这些下标不是用圆括号括起来,而是使用大括号大括号。q 普通数组中的每个元素都必须具有相同的数据类普通数组中
22、的每个元素都必须具有相同的数据类型,而细胞则没有此要求。型,而细胞则没有此要求。细胞数组细胞数组q Matlab 从从 5.0 版开始引入了一种新的数据类型版开始引入了一种新的数据类型 细胞细胞(cell),该结构可以该结构可以把不同类型的数据纳入把不同类型的数据纳入到一个变量到一个变量中。中。细胞数组举例细胞数组举例u 用赋值语句直接定义用赋值语句直接定义 u 用用 cell 函数预先分配存储空间,然后对细胞的每个函数预先分配存储空间,然后对细胞的每个元素逐个赋值。元素逐个赋值。细胞变量的定义细胞变量的定义A=1 2;3 4;str=Matlab;M=1:4,A,str;celldisp(M
23、)cell(m,n)l 生成一个生成一个 m 行行 n 列列 的细胞数组。的细胞数组。q 可以通过以下两种方式定义一个细胞变量可以通过以下两种方式定义一个细胞变量举例举例A=1 2;3 4;str=Matlab;M=1:4,A,str;N=hello,M;celldisp(N);A=1 2;3 4;str=Matlab;M=cell(1,3);M1,1=1:4;M1,2=A;M1,3=str;celldisp(M)细胞变量元素的引用细胞变量元素的引用A=1 2;3 4;str=Matlab;M=1:4,A,str;N=hello,M;eye(2),magic(3);N1,1N1,2N1,21,
24、2N1,21,2(2,1)l 细胞变量的引用必须使用细胞变量的引用必须使用大括号大括号。相关函数相关函数celldispl 输出细胞变量的内容。输出细胞变量的内容。cellplotl 用图形方式显示细胞变量的内容。用图形方式显示细胞变量的内容。iscelll 判别一个变量是否为细胞变量。判别一个变量是否为细胞变量。举例举例A=1 2;3 4;str=Matlab;M=1:4,A,str;celldisp(M);cellplot(M);iscell(A)iscell(M)稀疏矩阵介绍稀疏矩阵介绍v 稀疏矩阵稀疏矩阵q 对对于于一一个个 n 阶阶矩矩阵阵,通通常常需需要要 n2 的的存存储储空空间
25、间,当当 n 很很大大时,进行矩阵运算时会占用大量的内存空间和运算时间。时,进行矩阵运算时会占用大量的内存空间和运算时间。q Matlab支持稀疏矩阵,只存储矩阵的非零元素,这在矩阵支持稀疏矩阵,只存储矩阵的非零元素,这在矩阵的存储空间和计算时间上都有很大的优点。的存储空间和计算时间上都有很大的优点。q 在在许许多多实实际际问问题题中中遇遇到到的的大大规规模模矩矩阵阵中中通通常常含含有有大大量量0元元素,这样的矩阵称为素,这样的矩阵称为稀疏矩阵稀疏矩阵。q 稀稀疏疏矩矩阵阵及及其其算算法法,就就是是不不存存储储那那些些“0”元元素素,也也不不对对它它们们进进行行操操作作,从从而而节节省省内内存
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 第二讲 第二
限制150内