《MATLAB之(一)数组、矩阵和函数及运算.ppt》由会员分享,可在线阅读,更多相关《MATLAB之(一)数组、矩阵和函数及运算.ppt(33页珍藏版)》请在三一办公上搜索。
1、MATLAB软件使用简介,之一,MATLAB是MATrix LABoratory的缩写。它是一个高性能的科技计算软件,它具有强大的数值计算、图形和编程的功能。,MATLAB在数据处理、科学计算、系统工程、自动控制、无线电、机械制造等领域有着广泛的应用。,目前国内比较流行的MATLAB版本是V5.x(WINDOWS版),V6.x,下面介绍MATLAB的简单使用方法。,MATLAB具有的优势与特点,1.具有友好的工作平台和编程环境,用户界面精致,2.具有强大的科学计算及数据处理能力,可以解决:,矩阵计算和线性方程组求解;微分方程及偏微分方程组的求解;符号运算;傅立叶变换和数据的统计分析;工程中的优
2、化问题;稀疏矩阵运算;复数的各种运算等等。,3.具有出色的图形处理功能,4.具有应用广泛的模块集和工具箱,一般来说是由特定领域专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。,目前MATLAB已经把工具箱延伸到了科学研究和工程应用诸多领域,如:数据采集、数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图象处理、系统辩识、控制系统设计、鲁棒控制、金融分析等等。,5.具有使用的程序接口和发布平台 MATLAB与FORTRAN语言和C语言等高级语言有接口,交互使用。,1一些基本操作和命令,1 命令行编辑,home:光标移至行首
3、end:光标移至行末esc:清除一行:光标左移一个字符,:光标右移一个字符:调出前一命令行:调出下一命令行,2 续行号“.”:,当一个命令的长度超过一行时,应将该行分为两行,这时在第一行键入回车键换行之前须使用续行号“.”,遇到这一符号MATLAB会将后续行作为这一命令的继续。,3 帮助:,help程序(主题)名,如 help eye,2矩阵、数组与函数,MATLAB的主要数据对象是矩阵,标量、数组、行向量、列向量都是它的特例,最基本的功能是进行矩阵运算。MATLAB对矩阵和数组的操作有一些特殊规定。,一、矩阵的输入和运算,常用的矩阵输入方法有:直接输入每个元素;语句或函数生成;M-文件中生成
4、等。,1 矩阵的直接输入,MATLAB中不用描述矩阵的类型和维数,它们由输入的格式和内容决定。逐一输入矩阵的元素,具体做法是:在方括号内逐行键入矩阵各元素,同行元素之间用逗号或空格分隔,两行之间用分号分隔。对于大矩阵的输入,两行之间可用回车键代替分号,也可使用续行号。如:,A=1,2,3;4,5,6;7,8,0 回车,A=1 2 3 4 5 6 7 8 0,或 A=1,2,34,5,67,8,0 回车,A=1 2 3 4 5 6 7 8 0,B=1,2,3;4,5,6;7,8,011 12 13;14 15,16 回车,B=1 2 3 4 5 6 7 8 0 11 12 13,或B=1,2,3
5、;4,5,6;7,8,0;11,12 13;14 15,16,矩阵中的元素可以用它的行、列数表示,如:a=A(2,1)回车(A的第2行第1列元素),a=4,注:,1 A输入后一直保留在工作空间中,可随时调用。,2 可以直接修改矩阵的元素。如:,A(2,1)=7回车,A=1 2 3 7 5 6 7 8 0,又如:A(4,4)=1 回车,A=1 2 3 0 7 5 6 0 7 8 0 0 0 0 0 1,原来矩阵没有第4行和第4列,MATLAB自动增加行列数,对未输入的元素赋值0,2函数生成矩阵,MATLAB提供了一些函数来生成特殊矩阵,常见命令有:,(1)zeros(生成零矩阵);(2)eye(
6、生成对角元为1 矩阵);(3)ones(生成元素全为1的矩阵);(4)rand(生成在(0,1)均匀分布随机矩阵);(5)randn(生成正态分布随机矩阵);,W=zeros(2,3),W=0 0 0 0 0 0,V=eye(2,4),V=1 0 0 0 0 1 0 0,U=ones(3),U=1 1 1 1 1 1 1 1 1,X=rand(2,3),X=0.9501 0.6068 0.8913 0.2311 0.4860 0.7621,3矩阵的裁剪与拼接,从一个矩阵中取出若干行(列)构成新的矩阵称为裁剪,MATLAB中“:”的使用是非常重要的裁剪工具,如:,C=A(2:3,:),C=7 5
7、 6 0 7 8 0 0,注:A(2:3,:)中“2:3”表示取2至3行,“:”表示取所有的列。,D=5 6 0 8 0 0,D=C(:,2:4),A(3,:),ans=7 8 0 0,将几个矩阵接在一起称为拼接。左右拼接时要求行数相同,上下拼接时要求列数相同。如:,E=C,ones(2,1),E=7 5 6 0 1 7 8 0 0 1,F=A(1:2,:);eye(1,4),F=1 2 3 0 7 5 6 0 1 0 0 0,4矩阵的运算,“+”加法;“”减法;“”转值;“*”乘法;“”乘幂;“”左除;“/”右除。矩阵运算要符合矩阵运算规律,若不符合运算规律,将产生错误信息。这里只将左除和右
8、除的用法叙述如下:,设A可逆,AX=B的解是A左除B,即X=AB;XA=B的解是A右除B,即X=B/A,如:,A=1,2,3;4,5,6;7,8,0A=1 2 3 4 5 6 7 8 0,b=366;804;351b=366 804 351,X=AbX=25.0000 22.0000 99.0000,B=AB=1 4 7 2 5 8 3 6 0,d=bd=366 804 351,Y=d/BY=25.0000 22.0000 99.0000,X=b/AX=561-222 99,二、数组及其运算,一行一列的矩阵是向量或数组,在MATLAB中向量和数组虽然形式一致,但却是两个不同的概念,遵循不同的运
9、算规则。数组是元素为连续存储的数据的集合,数组运算的最重要特征是按元素进行运算。,1 数组的输入,可以像1n矩阵(即行向量)一样输入,如:,a=2,3,4,5 a=2 3 4 5,数组常用“:”来方便地生成一些特殊的数组。如:,a=1:5(从1到5公差为1的等差数组)a=1 2 3 4 5,b=1:2:7(从1到7公差为2的等差数组)b=1 3 5 7,c=6:-3:-6(从6到-6公差为-3的等差数组)c=6 3 0-3-6,e=0:2:8,ones(1,3)(等差数组和行向量的拼接)e=0 2 4 6 8 1 1 1,2数组的运算,数组除作为1n矩阵(行向量)遵循矩阵运算外,MATLAB还
10、为数组提供了一些特殊运算。两个数组间的运算是将对应元素作运算而得到的一个新的数组。一个数与一个数组间的运算是该数逐个与数组元素作运算而得到的数组。数组运算符有:,“+”加法;“-”减法;“.*”乘法;“.”乘幂;“.”左除;“./”右除。为了与矩阵运算相区别,乘法、除法、乘幂号前加上一个点“.”,为了避免二义性,最好在运算符的“.”前留一个空格。,a=1,2,3,4,5,b=1,3,5,7,9,c=a.*ba=1 2 3 4 5b=1 3 5 7 9c=1 6 15 28 45,d=a.2,e=b.ad=1 4 9 16 25e=1 9 125 2401 59049f=a./b,g=a.bf=
11、1.0000 0.6667 0.6000 0.5714 0.5556g=1.0000 1.5000 1.6667 1.7500 1.8000,三、语句、变量和表达式,1语句形式,MATLAB的语句的一般表达形式:,变量=表达式,注:,若变量和“=”省略,则名为ans的变量自动建立。如果你输入一个语句,并以回车结束,则在工作 区中显示计算结果;如果语句以分号“;”结束;MATLAB只进行计算,不显示计算结果。如果表达式太长,可以用续行号“”将其延续到下一行。一行中可以写几个语句,它们之间要用逗号或分号分开。,a=1,2,3,4,5;b=1,3,5,7,9;c=a.*b,d=a*b,e=a*b回车
12、,c=1 6 15 28 45d=95,e=1 3 5 7 9 2 6 10 14 18 3 9 15 21 27 4 12 20 28 36 5 15 25 35 45,2变量,MATLAB的变量由字母、数字和下划线组成,最多31个字符,区分大小写字母,第一个字符必须是字母。对于变量,MATLAB不需要任何类型的说明或维数语句,当输入一个新的变量名时,MATLAB自动建立变量并分配内存空间。,几个特殊变量:,pi 圆周率;eps 最小浮点数;Inf 正无穷大,特指1/0;NaN 不定值,特指0/0;I,j 虚数单位。,a=0,1,0,b=1,0,0,c=a./ba=0 1 0b=1 0 0
13、c=0 Inf NaN,c=pi c=3.1416,3变量的存储,工作空间中的变量可以用save命令存储到磁盘文件中。键入save,将工作空间中全部变量存到.mat 文件中去,若省略,则存到文件matlab.mat中。如:,save madt,save madtl a b(将变量a b存入madtl.mat文件中),4调出,用load命令可以把变量从磁盘文件读入到MATLAB的工作空间。load命令也可以调出文本文件,但是文本文件只能由数字组成的矩阵形式。load命令的用法为:,load,它将指出的磁盘文件中的数据依次读入名称与相同的工作空间中的变量中去。如:,load madt,load m
14、adtl,5变量值的显示,作为运算结果的变量值,在表达式计算后在屏幕上显示出来,但在表达式结尾加一个分号“;”,该结果不再显示。,显示格式:,在MATLAB中数据可以用多种格式显示,显示格式用显示命令指定。显示命令主要有:,format short(短格式,省缺显示);format long(长格式);format bank;format rat(分数格式);format short e(短e格式);format long e(长e格式)。,以为例,将显示方式列表如下:,命令 显示 说明,format short,t=pi,3.1416,4位小数,format long,t=pi,15位小数,
15、format bank,t=pi,3.14,2位小数,format rat,t=pi,355/113,最接近的有理数,format short e,t=pi,3.1416e+000,科学计数,format long e,t=pi,e+000,四、函数,MATLAB提供了大量的函数,按照起用法分为标量函数、向量函数和矩阵函数。,1标量函数,常用的函数列出如下,只作必要的注释:,三角函数:,双曲函数:,其他基本函数:,cos;sin;tan;cot;csc;asin;acos;atan;acot;asec;acsc;,sinh;cosh;tanh;asinh;acosh;atanh。,Sqrt(平
16、方根);exp(指数函数);log(对数函数);log10(以10为底的对数函数);log2(以2为底的对数函数);abs(绝对值或复数模);;real(取实部);imag(取虚部);angle(取幅角);rats(有理逼近)。,注:,这些函数本质上是作用于标量,当它们作用于矩阵(或数组)时,是对矩阵(或数组)的每个元素进行运算。如:,舍入函数:,round(四舍五入);floor(向-方向取值);ceil(向+方向取值);fix(向零方向取整),y=0 0.5878 0.9511 0.9511 0.5878 0.0000,a=-3.5,4.6,2.8,-2.2;b=round(a),c=fl
17、oor(a),d=ceil(a),e=fix(a),f=rats(a),b=-4 5 3-2c=-4 4 2-3d=-3 5 3-2e=-3 4 2-2f=-7/2 23/5 14/5-11/5,2向量函数,x=(0:0.2:1).*pi;y=sin(x),(用于数据分析),有些函数只有当它们作用于(行或列)向量时才有意义,称之为向量函数。这些函数也可作用于矩阵,此时它产生一个行向量,行向量的每个元素是函数作用于相应列向量的结果。常用的有:,max;min;sum(和);length(长度);mean(平均值)median(中值);prod(乘积);sort(从小到大排列)。std(标准差),
18、a=4,3.1,-1.2,0.6,2.8;b=min(a),c=sum(a),d=median(a),e=sort(a),a=4.0000 3.1000-1.2000 0.6000 2.8000b=-1.2000c=9.3000d=2.8000e=-1.2000 0.6000 2.8000 3.1000 4.0000,3矩阵函数,矩阵函数可分为两类:构造矩阵的函数和进行矩阵计算的函数。,构造矩阵的函数:,zeros(0矩阵);ones(1矩阵);eye(单位矩阵);rand(均匀分布随机矩阵);randn(正态分布随机矩阵);Randperm(m)(生成从1到m的随机变量排列),diag(生成
19、或提取对角矩阵);triu(生成或提取上三角矩阵);tril(生成或提取下三角矩阵);Meshgrid(三维网图);,A=1,2,3;4,5,6;7,8,10,B=triu(A),C=tril(A),B=1 2 3 0 5 6 0 0 10,C=1 0 0 4 5 0 7 8 10,A=1 2 3 4 5 6 7 8 10,D=diag(A),E=diag(D),D=1 5 10,E=1 0 0 0 5 0 0 0 10,常见的矩阵计算函数有:,size(大小);det(行列式);rank(秩);inv(逆);eig(特征值,特征向量与特征值);trace(迹);expm(矩阵指数);poly
20、(特征多项式);lu(lu分解);qr(正交分解);norm(矩阵或向量的范数);cond(条件数)。poly(特征多项式);chol(Cholesky分解),A=8,1,6;3,5,7;4,9,2,B=size(A),A=8 1 6 3 5 7 4 9 2,B=3 3,C=det(A),D=rank(A),E=inv(A),C=-360D=3,E=0.1472-0.1444 0.0639-0.0611 0.0222 0.1056-0.0194 0.1889-0.1028,F=trace(A),G=poly(A),F=15G=1.0000-15.0000-24.0000 360.0000,h=
21、expm(A),h=1.0e+006*1.0898 1.0896 1.0897 1.0896 1.0897 1.0897 1.0896 1.0897 1.0897,将矩阵A分解为单位下三角阵L与上三角阵U之积,L=1.0000 0 0 0.3750 0.5441 1.0000 0.5000 1.0000 0,U=8.0000 1.0000 6.0000 0 8.5000-1.0000 0 0 5.2941,L,U=lu(A),Q,R=qr(A),Q=-0.8480 0.5223 0.0901-0.3180-0.3655-0.8748-0.4240-0.7705 0.4760,R=-9.4340
22、-6.2540-8.1620 0-8.2394-0.9655 0 0-4.6314,将A分解为正交矩阵Q与上三角阵R之积,X=1,2,3;2,20,30;3,30,94,w=chol(X),将正定矩阵X分解成X=y*y,其中y是上三角阵,X=1 2 3 2 20 30 3 30 94,w=1 2 3 0 4 6 0 0 7,D=78.9151 0 0 0 22.2180 0 0 0 30.8669,C=-0.6559 0.7940-0.7594-0.2066-0.4010 0.6360-0.7260-0.4570-0.1370,C,D=eig(A),B=78.9151 22.2180 30.8669,B=eig(A),A=fix(50*rand(3,3),A=47 24 22 11 44 0 30 38 41,