《第2章 MATLAB数据.ppt》由会员分享,可在线阅读,更多相关《第2章 MATLAB数据.ppt(78页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第2章章 MATLAB数据数据2.1 MATLAB数据的特点1矩阵是MATLAB最基本、最重要的数据对象。单个数据(标量)可以看成是矩阵的特例。2MATLAB数据类型v MATLAB中采用十进制数,并可用科学表示法,虚数用i或j 表示。5 -39 0.0025 1.52e-20 6.9e13 3.0i -3+4i 浮点数的范围大致为10-30810308。v数值数据:双精度型(默认)、单精度数、带符号整数和无符号整数。v字符数据。v结构(Structure)和单元(Cell)。v多维矩阵和稀疏矩阵(Sparse)。目录目录v双精度数值变量IEEE标准,64位(8字节),数值的相对精度是eps
2、数值范围:v其他数据类型uint8,常用于图像表示和处理,8位int8,int16,int32,uint16,uint32 2.2 变量和赋值2.2.1 变量的命名规则v在MATLAB中,变量名是以一个字母开头,后接字母、数字或下划线的字符序列,最多19个字符,字母间不可留空格,。v在MATLAB中,变量名区分字母的大小写。MATLAB提供的标准函数名以及命令名必须用小写字母。目录目录v有效的变量名MYvar12,MY_Var12 和 MyVar12_错误的变量名 12MyVar,_MyVar12 MATLAB中的变量不需要事先定义,在遇到新的变量名时,MATLAB会自动建立该变量并分配存储空
3、间。对变量赋值可采用赋值语句。变量名=表达式;固定变量/MATLAB中预定义变量 MATLAB中提供了一些用户不能清除的固定变量。ans:分配最新计算表达式的值,这个表达式并没有给定一个名字eps:在决定诸如奇异性和秩时,可作为一个容许误差,eps=2.22*10-16,用户也可将此变量置为其它任何值。pi:即Inf:表示正无穷大,当输入1/0时会产生InfNaN:表示不定值,它由Inf/Inf或0/0运算产生。2.2.2 赋值语句MATLAB赋值语句有两种格式:(1)变量=赋值表达式 如:S1+2*pi目录目录(2)表达式 如:1+2*pi函数调用语句函数调用语句函数函数vMatlab由包括
4、许多标准函数,每个函数由包括许多标准函数,每个函数都完成某一特定功能的代码组成。都完成某一特定功能的代码组成。vMatlab也允许用户编写自己所需的函数,也允许用户编写自己所需的函数,其扩展名为其扩展名为.m,其中必须以关键字,其中必须以关键字function开头开头.MATLAB的每条命令后,若为逗号或无逗号或无标点标点符号,则显示命令的结果;若命令后为分号分号,则禁止显示结果.“%”后面所有文字为注释.“.”表示续行.例2.1 计算表达式的值,并将结果赋给变量x,然后显示出结果。在MATLAB命令窗口输入命令:x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i)%计算表达
5、式的值目录目录变量及数组输入变量及数组输入 vMATLAB的变量及数组均是以向量或矩阵方式存储的的变量及数组均是以向量或矩阵方式存储的 v1:向量方式输入:向量方式输入x=1,2,3,4,5%以向量(数组)方式给以向量(数组)方式给x赋值赋值y=(x(3)+x(5)/2*x(4)%调用调用x中的元素中的元素z=sqrt(x)%每个元素开方每个元素开方t=x%向量向量x的转置赋给的转置赋给tu=x*t%向量的内积(向量的内积(u为向量为向量x的模的平方)的模的平方)变量及数组输入变量及数组输入 v2:矩阵方式输入:矩阵方式输入a=1,2,3;4,5,6;7,8,0%矩阵输入矩阵输入(a为为3阶方
6、阵)阶方阵)b=366;804;351%列矩阵输入列矩阵输入det(a)%方阵行列式方阵行列式inv(a)%方阵的逆方阵的逆x=ab%ax=b方程组的解方程组的解y=inv(a)*b%与与x相同相同disp(a,b,x)%显示矩阵显示矩阵 2.2.3 数据的输出格式vMATLAB用十进制数表示一个常数,具体可采用日常记数法和科学记数法两种表示方法。v数据输出时用户可以用format命令设置或改变数据输出格式。format命令的格式为:format 格式符v注意,format命令只影响在屏幕上的显示数据输出格式,而不影响数据的计算和存储,MATLAB的数据存储和运算总是以双精度进行的。目录目录
7、可用菜单File/Preferences中的Command Window 里的Numarical Format来设定数据显示方式,有short(小数点后4位),long(15位数字),bank(小数点后2位),short e(5位科学计数法),long e(15位科学计数法),rat(最接近的有理数).也可在Command Window中用命令设置,例如:format longFormat short :5位定点格式,如位定点格式,如 1.4142Format long :15位定点格式,如位定点格式,如 1.41421356237310Format short e :5位浮点,如位浮点,如1
8、.4142e+000Format long e :15位浮点,如位浮点,如1.414213562373095e+000Format short g:5位定点或浮点取优,如位定点或浮点取优,如1.4142Format long g:15位定点或浮点取优,如位定点或浮点取优,如1.4142135623731Format hex :十六进制数,如:十六进制数,如3ff6a09e667f3bcdFormat bank:货币格式,如:货币格式,如1.41Format rat :分数之比,如:分数之比,如1393/985Format+:若为正数则显示:若为正数则显示+,若为负数则显示,若为负数则显示-,若
9、为,若为0则显示空则显示空如 format short%设置定点格式,显示5位 pians=3.1416 format long%设置定点格式,显示15位 pians=3.14159265358979 2.2.4 内存变量的管理内存变量的管理 1.内存变量的显示与删除内存变量的显示与删除v who和和whos这这两两个个命命令令用用于于显显示示在在MATLAB工工作作空空间中已经驻留的变量名清单。间中已经驻留的变量名清单。例:若要检视现存於工作空间(例:若要检视现存於工作空间(Workspace)的变数,)的变数,可键入可键入who:who Your variables are:testfil
10、e x vclear命令用于删除命令用于删除MATLAB工作空间中的变量。工作空间中的变量。v注意,预定义变量不能被删除。注意,预定义变量不能被删除。目录目录 3.内存变量文件v利用MAT文件(.mat)可以把当前MATLAB工作空间中的一些有用变量长久地保留下来。vMAT文件的生成和装入由save和load命令来完成。常用格式为:save 文件名 变量名表 -append-ascii -将工作空间的所有变数储存到名为matlab.mat的二进制档案。目录目录2.工作空间浏览器 (1)工作空间浏览器的启动 (2)工作空间浏览器的操作vsave filename:将工作空间的所有变数储存到名为f
11、ilename.mat的二进制档案。vsave filename x y z:将变数x、y、z储存到名为filename.mat的二进制档案。v以二进制的方式储存变数,通常档案会比较小,而且在载入时速度较快,但是就无法用普通的文书软体(例如pe2或记事本)看到档案内容。若想看到档案内容,则必须加上-ascii选项,详见下述:vsave filename x-ascii:将变数x以八位数存到名为filename的ASCII档案。load filename变量名表 -ascii-load命令可将档案载入以取得储存之变数,load会寻找名称为filename.mat的档案,并以二进制格式载入。若找不
12、到filename.mat,则寻找名称为filename的档案,并以ASCII格式载入。load filename-ascii:load会寻找名称为filename的档案,并以ASCII格式载入。若以ASCII格式载入,则变数名称即为档案名称(但不包含副档名)。若以二进制载入,则可保留原有的变数名称 2.3 MATLAB矩阵 2.3.1 矩阵的建立 1.直接输入法 将矩阵的元素用方括号括起来,按矩阵行的顺序输入各元素,同一行的各元素之间用空格或逗号分隔,不同行的元素之间用分号分隔。目录目录例如 A=1 2 3;4 5 6;7 8 9运行结果为A=1 2 3 4 5 6 7 8 9 v 2.创建
13、创建M文件输入大矩阵文件输入大矩阵 M文件是一种可以在文件是一种可以在MATLAB环境下运行的文本文环境下运行的文本文件。它可分为命令式文件和函数式文件件。它可分为命令式文件和函数式文件2种。种。当矩阵的规模比较大时,可以利用当矩阵的规模比较大时,可以利用M文件的特点将文件的特点将所要输入的矩阵按格式写入一文本文件中,并将此文所要输入的矩阵按格式写入一文本文件中,并将此文件以件以.m 为其扩展名,即为为其扩展名,即为M文件。文件。例例2.2 利用利用M文件建立文件建立MYMAT矩阵。矩阵。(1)启启动动有有关关编编辑辑程程序序或或MATLAB文文本本编编辑辑器器,并并输输入入待建矩阵待建矩阵.
14、(2)把把输输入入的的内内容容以以纯纯文文本本方方式式存存盘盘(设设文文件件名名为为mymatrix.m)。(3)运运行行该该M文文件件,就就会会自自动动建建立立一一个个名名为为MYMAT的的矩矩阵,可供以后使用。阵,可供以后使用。(演示如下演示如下)目录目录 edit%启动有关编辑程序或MATLAB文本编辑器,并输入待建矩阵.把输入的内容以纯文本方式存盘(设文件名为mymatrix.m)。mymatrix%运行该M文件,就会自动建立一个名为MYMAT的矩阵,可供以后使用A=1 2 3 4 5 6 7 8 9 3.利用MATLAB函数建立矩阵v几个产生特殊矩阵的函数:zeros、ones、ey
15、e、rand(均匀分布的随机矩阵,随机数均匀分布在(0,1内)、randn(正态分布的随机矩阵)。v这几个函数的调用格式相似,下面以产生零矩阵的zeros函数为例进行说明。其调用格式是:zeros(m)产生mm零矩阵 zeros(m,n)产生mn零矩阵。zeros(size(A)产生与矩阵A同样大小的零矩阵v相关的函数有:length(A)给出行数和列数中的较大者,即length(A)=max(size(A);ndims(A)给出A的维数。目录目录其他特殊矩阵:其他特殊矩阵:compan magic gallery pascal hadamard rosser hankel toeplitz
16、hilb vander invhilb wilkinson 例2.3 分别建立33、32和与矩阵A同样大小的零矩阵。(1)建立一个33零矩阵:zeros(3)zeros(3)ans=0 0 0 0 0 0 0 0 0目录目录(2)建立一个32零矩阵:zeros(3,2)zeros(3,2)ans=0 0 0 0 0 0(3)建立与矩阵A同样大小零矩阵:zeros(size(A)A=2 4 7 5;7 8 9 10;zeros(size(A)ans=0 0 0 0 0 0 0 0此外,常用的函数还有此外,常用的函数还有reshape(A,m,n),它在矩,它在矩阵总元素保持不变的前提下,将矩阵阵
17、总元素保持不变的前提下,将矩阵A重新排重新排成成mn的二维矩阵。的二维矩阵。A=2 4 7 5;7 8 9 10;reshape(A,4,2)ans=2 7 7 9 4 5 8 10 reshape(A,1,8)ans=2 7 4 8 7 9 5 10 reshape(A,8,1)ans=2 7 4 8 7 9 5 10 4.建立大矩阵 大矩阵可由方括号中的小矩阵建立起来。例如目录目录 A=1 2 3;4 5 6;7 8 9;C=A,eye(size(A);ones(size(A),AC=1 2 3 1 0 0 4 5 6 0 1 0 7 8 9 0 0 1 1 1 1 1 2 3 1 1 1
18、 4 5 6 1 1 1 7 8 9 2.3.2 冒号表达式 v冒号表达式的一般格式:e1:e2:e3相当于e1,e1+e2,e1+2e2,e3v例:A=1:3:11目录目录A=1 4 7 10还可以用还可以用linspace函数产生线性等分行向函数产生线性等分行向量:量:linspace(a,b,n):返回以:返回以a为起点,为起点,b为为终点的等间距共有终点的等间距共有n个元素的行向量。个元素的行向量。例:例:format short linspace(0,0.1,5)linspace(a,b,n)与a:(b-a)/(n-1):b等价。ans=0 0.0250 0.0500 0.0750
19、0.1000l对数等分向量的生成对数等分向量的生成logspace(x1,x2)生成(生成(1*50)维对数)维对数等分向量。等分向量。Logspace(x1,x2,n)生成(生成(1*n)维对)维对数等分向量。数等分向量。2.3.3 矩阵的拆分1.矩阵元素vMATLAB允许用户对一个矩阵的单个元素进行赋值和操作。例如 A(3,2)=400目录目录 A=-1:3:15;-2:4:18A=-1 2 5 8 11 14 -2 2 6 10 14 18 A(2,3)=400A=-1 2 5 8 11 14 -2 2 400 10 14 18也可以采用矩阵元素的序号来引用矩阵元素。矩阵元素按列编号,先
20、第一列,再第二列,依次类推。以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。A=-1:3:15;-2:4:18A=-1 2 5 8 11 14 -2 2 6 10 14 18 A(1)ans=-1 A(2)ans=-2 A(3)=300A=-1 300 5 8 11 14 -2 2 6 10 14 18 ind=sub2ind(size(A),1,5)ind=9 ind=sub2ind(size(A),2,6)ind=12 A(12)=345A=-1 2 5 8 11 14 -2 2 6 10 14 345 2.矩
21、阵拆分 (1)利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。目录目录 A=1:2:7;2:2:8;11:2:17;12:2:18A=1 3 5 7 2 4 6 8 11 13 15 17 12 14 16 18 A(:,2)ans=3 4 13 14 A(3,4)ans=17A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。A(2:4,3:4
22、)ans=6 8 15 17 16 18 A=1:2:7;2:2:8;11:2:17;12:2:18A=1 3 5 7 2 4 6 8 11 13 15 17 12 14 16 18此外,还可利用一般向量和end运算符等来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。A(end)=56A=1 3 5 7 2 4 6 8 11 13 15 17 12 14 16 56 A(end,:)ans=12 14 16 56 A=1:2:7;2:2:8;11:2:17;12:2:18A=1 3 5 7 2 4 6 8 11 13 15 17 12 14 16 18 (2)利用空矩阵删除矩阵
23、的元素v在MATLAB中,定义为空矩阵。给变量X赋空矩阵的语句为X=。v注意,X=与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间,只是维数为0。v将某些元素从矩阵中删除,采用将其置为空矩阵的方法就是一种有效的方法。目录目录 A=1 3 5 7;2 3 5 8;2 4 6 8;3 4 7 11%设设A为已知矩阵为已知矩阵A=1 3 5 7 2 3 5 8 2 4 6 8 3 4 7 11 A(2,:)=%令第令第2行为空行行为空行,第第2行被清空行被清空A=1 3 5 7 2 4 6 8 3 4 7 11例例 2.3.4 多维矩阵(不讲)以三维矩阵为例,常用的方
24、法有4种:(1)对二维矩阵进行扩充得到三维矩阵。(2)若干个同样大小的二维矩阵进行组合得到三维矩阵。(3)除产生单位矩阵的eye函数外,前面介绍的建立矩阵的函数都可以延伸到三维矩阵。(4)用cat函数构建多维矩阵。一般调用格式是:cat(n,A1,A2,An)cat函数把大小相同的若干矩阵,沿第n维方向串接成高维矩阵。当n=1和2时,沿行和列的方向串接,结果是二维矩阵。当n=3时,沿页的方向串接,结果是三维矩阵。目录目录A(:,:,1)=magic(3);A(:,:,2)=pascal(3);A(:,:,3)=zeros(3);A(:,:,4)=ones(3);%设设3维矩阵维矩阵A的第的第1
25、页为页为magic(3),%设设3维矩阵维矩阵A的第的第2页为页为pascal(3),%设设3维矩阵维矩阵A的第的第3页为页为zeros(3),%设设3维矩阵维矩阵A的第的第4页为页为ones(3)A%显示显示A size(A)ans=3 3 4 2.4 MATLAB运算 2.4.1算术运算 1.基本算术运算 MATLAB的基本算术运算有:(加)、(减)、*(乘)、/(右除)、(左除)、(乘方)。注意:运算是在矩阵意义下进行的,单个数据的算术运算只是一种特例。目录目录MATLAB中基本代数运算符中基本代数运算符 运算运算 符号符号 举例举例加法,加法,a+b +5+3减法,减法,a-b -5-
26、3乘法,乘法,ab *5*3 除法,除法,ab /or 48/4=448=12乘幂,乘幂,ab 52=25MATLAB中数组、矩阵基本运算符中数组、矩阵基本运算符 运算运算 符号符号 举例举例加法,加法,a+b +1 2+3 4 1,2+3减法,减法,a-b -1 2-3 4 1,2-3乘法,乘法,a*b *1,2*3 1,2*3,4 a.*b .*1,2.*3,4=3,8逆乘,逆乘,左除 ax=b x=ab=inv(a)*b 右右除/xa=b x=b/a=b*inv(a)乘幂,方阵的幂乘幂,方阵的幂 a2=a*a 元素的幂元素的幂 .a.2 x.3注意:矩阵的除法有注意:矩阵的除法有2种形式
27、:左除种形式:左除“”和右除和右除”/”右除:右除:A/B基本上相当于基本上相当于A*INV(B),精确地说,精确地说,A/B=(BA)。左除:左除:AB基本上相当于基本上相当于INV(A)*B,若,若A为为N*N矩阵,矩阵,B为为N个元素的列向量,则个元素的列向量,则X=AB是线性方程是线性方程A*X=B的解(利用高斯消元法),若的解(利用高斯消元法),若A为为M*N矩阵,矩阵,B为为M个元素的列向量,则个元素的列向量,则X=AB是在最小二乘意义下方是在最小二乘意义下方程程A*X=B的解,的解,AEYE(SIZE(A)是是A的逆矩阵。的逆矩阵。A=1 2 3;4 5 6;7 8 10A=1
28、2 3 4 5 6 7 8 10 B=1 3 5;7 9 11;13 15 16B=1 3 5 7 9 11 13 15 16 B-Aans=0 1 2 3 4 5 6 7 6 A+Bans=2 5 8 11 14 17 20 23 26 A*Bans=54 66 75 117 147 171 193 243 283 A=1 2 3;4 5 6;7 8 10A=1 2 3 4 5 6 7 8 10 C=54 66 75;117 147 171;193 243 283C=54 66 75 117 147 171 193 243 283 AC%矩阵C被矩阵A左除,即为 inv(A)*Cans=1.
29、0000 3.0000 5.0000 7.0000 9.0000 11.0000 13.0000 15.0000 16.0000 A/C%即A*inv(C)ans=-0.3333 -0.2500 0.2500 -0.3333 2.2500 -1.2500 -2.0000 15.4167 -8.7500 A=1 1 1;2 2 2;3 3 3A=1 1 1 2 2 2 3 3 3 B=1 0 0;0 2 0;0 0 3B=1 0 0 0 2 0 0 0 3 ABWarning:Matrix is singular to working precision.(Type warning off MA
30、TLAB:singularMatrix to suppress this warning.)ans=Inf Inf Inf Inf Inf Inf Inf Inf Inf A/Bans=1.0000 0.5000 0.3333 2.0000 1.0000 0.6667 3.0000 1.5000 1.00002.点运算 点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维参数相同。要求两矩阵的维参数相同。A=1 2 3;4 5 6A=1 2 3 4 5 6 B=1 1 1;2 3 4B=1 1 1 2 3 4 A.*B%A,B的对应元素相乘的对应元素相乘
31、ans=1 2 3 8 15 24 A./B%A,B的对应元素相除的对应元素相除ans=1.0000 2.0000 3.0000 2.0000 1.6667 1.5000 A.B%B,A的对应元素相乘的对应元素相乘ans=1.0000 0.5000 0.3333 0.5000 0.6000 0.6667 A.2%A的元素各自平方的元素各自平方ans=1 4 9 16 25 36v矩阵翻转左右翻转 上下翻转旋转 90o如何旋转180o?3MATLAB常用数学函数常用数学函数 (P39)函函 数数 名名 称称 函函 数数 名名 称称 sin(x)sin(x)正弦函数正弦函数asin(x)asin(
32、x)反正弦函数反正弦函数cos(x)cos(x)余弦函数余弦函数acos(x)acos(x)反余弦函数反余弦函数tan(x)tan(x)正切函数正切函数atan(x)atan(x)反正切函数反正切函数abs(x)abs(x)绝对值绝对值max(x)max(x)最大值最大值min(x)min(x)最小值最小值sum(x)sum(x)元素的总和元素的总和sqrt(x)sqrt(x)开平方开平方exp(x)exp(x)以以e e为底的指数为底的指数log(x)log(x)自然对数自然对数log10(x)log10(x)以以1010为底的对数为底的对数sign(x)sign(x)符号函数符号函数fix
33、(x)fix(x)取整取整v还有如:length(长度);mean(平均值);median(中间值);prod(乘积);sort(从小到大排序)vround(四舍五入取整);floor(向-1方向取整);ceil(向+1方向取整);real(取实部);imag(取虚部);angle(取辐角);rats(有理逼近)2.4.2 关系运算 MATLAB提供了6种关系运算符:(小于)、(大于)、=(大于或等于)、=(等于)、=(不等于)。目录目录关系运算符的运算法则:关系运算符用于比较两个同样大小的矩阵,或用来比较一个矩阵。当关系运算符用于比较两个同样大小的矩阵时,将按两个矩阵对应元素逐个进行比较,并
34、生成相同大小的逻辑矩阵(其元素仅由1和0构成,结果为真时为1,假时为0);当关系运算符用于比较一个矩阵时,关系运算符将把标量同矩阵的每一个元素进行比较,并生成相同大小的逻辑矩阵(其元素仅由1和0构成,结果为真时为1,假时为0);A=fix(90-10+1)*rand(5)+10)A=86 71 59 42 14 28 46 74 85 38 59 11 84 84 75 49 76 69 43 10 82 46 24 82 21例2.4 产生5阶随机方阵A,其元素为10,90区间的随机整数,然后判断A的元素是否能被3整除。(1)生成5阶随机方阵A。(2)判断A的元素是否可以被3整除。目录目录
35、P=rem(A,3)=0P=0 0 0 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 0 1 0 1 2.4.3 逻辑运算v MATLAB提供了3种逻辑运算符:&(逻辑与)、|(逻辑或)和(逻辑非)。v 运算法则。(相应元素间的运算)目录目录关系和逻辑函数:关系和逻辑函数:all,any all(x),当向量当向量x的所有元素非零时返回的所有元素非零时返回1,否则返回,否则返回0.any(x),当向量当向量x有非零元素时返回有非零元素时返回1,否则返回,否则返回0.all(A),any(A),A为矩阵,则对为矩阵,则对A的列向量作用,返回的列向量作用,返回的是行向量的
36、是行向量.基本基本逻辑逻辑运算表运算表符号运算符功能函数名=等于eq=不等于ne大于gt=大于等于ge&逻辑与and|逻辑或or逻辑非not逻辑逻辑关系函数表(部分)关系函数表(部分)函数名功能函数名功能any若向量的任意元素不为零则返回真islogical若数组为逻辑数组则返回1,否则返回0all若数组的所有元素不为零则返回真logical将数值转换为逻辑型xor逻辑异或find查找非零元素的值和下标isempty判断空矩阵isnan判断不定数isequal判断相等数组isinf判断无限大元素isnumeric判断数值矩阵isfinite判断有限大元素 例2.5目录目录 A=0 0 0;1
37、0 1;0 3 0;B=0 1 0;2 4 1;0 0 0;A&B%A和B对应元素都不为0时,返回1,否则为0ans=0 0 0 1 0 10 0 0 A|B%A和B对应元素都为0时,返回0,否则为1 ans=0 1 0 1 1 1 0 1 0 A%A的元素为0时,返回1,元素非零时返回值为0ans=1 1 1 0 1 0 1 0 1 xor(A,B)%A和B对应元素都为0或都不为0时,返回0,否则1ans=0 1 0 0 1 0 0 1 0A=1 2 3;4 5 6;7 8 0;find(A=5)ans=3 5 6 8any(A=5)ans=1 1 1i,j=find(A=5);i,jans
38、=3 1 2 2 3 2 2 3all(A=5)ans=0 0 0 A=5ans=0 0 0 0 1 1 1 1 0 2.5 字符串v字符串是用单撇号括起来的字符序列。例如,Central South University。v若字符串中的字符含有单撇号,则该单撇号字符应用两个单撇号来表示。例如,v S=Ill go on目录目录S=Ill go onDouble(),char(),int2str(),num2str(),str2mat(),mat2str()等等字符串字符串常用操作函数常用操作函数 a=abs(S)a=73 34 108 108 32 103 111 32 111 110 ch
39、ar(a)ans=Ill go on字符串是以ASCII码形式存储的。abs和double函数都可以用来获取字符串矩阵所对应的ASCII码数值矩阵。相反,char函数可以把ASCII码矩阵转换为字符串矩阵。例2.6 建立一个字符串向量,然后对该向量做如下处理:(1)取第15个字符组成的子字符串。(2)将字符串倒过来重新排列。(3)将字符串中的小写字母变成相应的大写字母,其余字符不变。(4)统计字符串中小写字母的个数。目录目录 w=If you can dream,you can do;x=w(1:6)%取第15个字符组成 的子字符串x=If you size(w)ans=1 27 y=w(27
40、:-1:1)%将字符串倒过来重新 排列y=od nac uoy,maerd nac uoy fI k=find(w=a&w w(k)=setstr(w(k)-(a-A)w=IF YOU CAN DREAM,YOU CAN DO size(k)%统计字符串中小写字母 的个数ans=1 20 与字符串有关的另一个重要函数是eval,其调用格式为:eval(t)其中t为字符串。它的作用是把字符串的内容作为对应的MATLAB语句来执行。例如v t=pi;v m=t,sin(t),cos(t);v y=eval(m)vy=v 3.1416 0.0000 -1.0000目录目录 2.6 结构和单元2.6.
41、1 结构数据 MATLAB通过使用结构(Structure)数据类型把一组不同类型的数据同时又是在逻辑上相关的数据组成一个有机的整体,以便于管理和引用。目录目录1.结构矩阵的建立与引用结构矩阵的建立与引用 1.结构成员的修改结构成员的修改 2.6.2 单元数据 单元(Cell)数据的概念与结构有些类似,也是把不同属性的数据放在一个变量中。所不同的是,结构变量的各个元素下有成员,每个成员都有自己的名字,对成员的引用是:结构变量名.成员名。而单元矩阵的各个元素就是不同类型的数据,用带有大括号下标的形式引用单元矩阵元素。目录目录小整理:适用於向量的常用函数有:min(x):向量x的元素的最小值 ma
42、x(x):向量x的元素的最大值 mean(x):向量x的元素的平均值 median(x):向量x的元素的中位数 std(x):向量x的元素的标准差 diff(x):向量x的相邻元素的差 sort(x):对向量x的元素进行排序(Sorting)length(x):向量x的元素个数 norm(x):向量x的欧氏(Euclidean)长度 sum(x):向量x的元素总和 prod(x):向量x的元素总乘积 cumsum(x):向量x的累计元素总和 cumprod(x):向量x的累计元素总乘积 dot(x,y):向量x和y的内积 cross(x,y):向量x和y的外积 目录目录小整理:小整理:MATL
43、AB的永久常数的永久常数 i或j:基本虚数单位 eps:系统的浮点(Floating-point)精确度 inf:无限大,例如1/0 nan或NaN:非数值(Not a number),例如0/0 pi:圆周率 p(=3.1415926.)realmax:系统所能表示的最大数值 realmin:系统所能表示的最小数值 nargin:函数的输入参数个数 nargout:函数的输出参数个数 目录目录下面是调用常量的例子:下面是调用常量的例子:epsans=2.2204e-016 1/0Warning:Divide by zero.(Type warning off MATLAB:divideByZero to suppress this warning.)ans=Inf log(0)Warning:Log of zero.ans=-Inf sin(2*pi)ans=-2.4493e-016 realmaxans=1.7977e+308 realminans=2.2251e-308