Matlab的基本计算.ppt_第1页
Matlab的基本计算.ppt_第2页
Matlab的基本计算.ppt_第3页
Matlab的基本计算.ppt_第4页
Matlab的基本计算.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

MATLAB实验第二讲,MATLAB基本运算,数据类型,四种基本数组类型:数值、字符、元胞、结构数组。,字符串数组,基本规则:所有字符串都用单引号括起来;字符串中的每一个字符都是该字符串变量中的一个元素;字符串中的字符以ASC码形式存储,因而区分大小写。,例String1=b;String2=Thisisanexample!;%英文字母、空格、数字、标点、中文字符String3=例子chararray;%都是占一个元素位,两个字节s1=class(String1)s1=chars2=size(String2)s2=119whosNameSizeBytesClassString11x12chararrayString21x1938chararrayString31x1428chararrays11x48chararrays21x216doublearrayGrandtotalis26elementsusing64bytes,1)创建串数组:“单引号对”必须在英文状态下输入。2)串数组的大小:size指令获得串数组的大小。串中的每一个字符,包括中英文字符、空格、标点都算一个元素。3)串数组的标识:自左向右用数字1、2、3、4标识。4)ASCII码显示:abs和double指令可以显示串数组对应的ASCII码数值数组。char指令则可以把ASCII码数值数组转换成串数组。5)ASCII码数组的操作:可以对ASCII码数组进行数值数组的各种运算。注意:当字符串中包含单引号时,用连续两个单引号表示。,字符串数组的属性和标识,利用串转换函数创建字符串常用的有:int2str,num2str,mat2strint2str:整数数组转换成字符串,非整数四舍五入。num2str:非整数数组转换成字符串。mat2str:数值数组转换成字符串。区别:a=0.95760.82.151;4.057.8a1=int2str(a)%取整数作为字符a2=num2str(a,2)%2位有效数字a3=mat2str(a,2)%一行字符,a=0.95760.80002.15104.00005.00007.8000a1=112458a2=0.960.82.2457.8a3=0.960.82.2;457.8,a1/a2/a3-均为字符串,串转换函数,字符串操作函数,输出格式,Matlab的输出,Matlab以双精度执行所有的运算,运算结果可以在屏幕上输出,同时赋给指定变量;若无指定变量,则系统会自动将结果赋给变量“ans”,Matlab中数的输出格式可以通过format命令指定,format只改变变量的输出格式,但不会影响变量的值!,各种format格式,可直接在命令窗内输入表达式进行计算,(二)Matlab的基本计算功能,例输入矩阵a=2,3,4;3,5,7;8,9,10;b=111;222;333;c=a+bc=345579111213,Matlab带有强大的函数库,一般的数学运算都能容易的实现,MATLAB软件中部分常用函数表,以10为底的对数,例计算和2*cos(0.3*pi)/(1+sqrt(7)调出上次的输入或移动光标,将3改为4Enter键,给出计算结果,(三)Matlab矩阵和数组的创建和修改,1.矩阵的创建和修改1.1直接输入矩阵的创建规则:矩阵元素必须用括住矩阵元素必须用逗号或空格分隔在内矩阵的行与行之间必须用分号分隔或按Enter键分割,矩阵元素可以是数字或任何matlab表达式,表达式不可包含未知的变量;可以是实数,也可以是复数,复数可用特殊函数i,j输入。例:1.a=123;4562.b=2pi/2;sqrt(3)3+5i3.x=9;y=pi/6;%定义x,y变量A=35sin(y)cos(y)x27x/251%产生矩阵A说明:%为Matlab注释的开始标志,后面的文字不进行计算,矩阵元素,矩阵的修改,直接修改可用键找到所要修改的矩阵,用键移动到要修改的矩阵元素上即可修改。指令修改可以用A(,)=来修改。,例如a=120;305;789a=120305789a(3,3)=0a=120305780,1.2用matlab函数创建和修改矩阵,Matlab提供了大量的函数来创建一些常用的特殊矩阵,例如对角阵、单位阵和零矩阵例:0-1分布的随机矩阵,利用rand函数产生任意行列的随机矩阵a=rand(5,5),例2-2利用diag产生对角阵diag(M)M为矩阵或向量,对于矩阵,取对角元产生一个列向量;对于向量则产生一个对角阵,a=rand(5,5)a=0.70270.79480.97970.13650.66140.54660.95680.27140.01180.28440.44490.52260.25230.89390.46920.69460.88010.87570.19910.06480.62130.17300.73730.29870.9883,D=diag(d)%向量产生矩阵D=0.7027000000.9568000000.2523000000.1991000000.9883,d=diag(a)%矩阵产生列向量d=0.70270.95680.25230.19910.9883,Matlab中用于产生特殊矩阵的函数,zeros(m,n)mn的零矩阵,全部元素都为0ones(m,n)全部元素都为1的mn的矩阵rand(m,n)随机矩阵eye(m,n)单位矩阵magic(n)n维magic方阵空阵matlab允许输入空阵,当一项操作无结果时,返回空阵。,还有伴随矩阵、稀疏矩阵、范德蒙等矩阵的创建等等注意:matlab严格区分大小写字母,因此a与A是两个不同的变量。matlab函数名必须小写。,2.矩阵标识和子矩阵,子阵的序号向量标识方式a(m,n),m,n大于等于1小于矩阵的维数;a(L1,:)、a(:,L2)、a(L1,L2),B=magic(5)B=17241815235714164613202210121921311182529B1=B(1:2,1,3,5)B1=1711523716,B(1,3,2,4)=zeros(2)B=170101523571416401302210121921311182529,B2=B(1,3,:)B2=1724181546132022,3.矩阵的运算,3.1.矩阵加、减(,)运算规则:相加、减的两矩阵必须有相同的行和列两矩阵对应元素相加减。允许参与运算的两矩阵之一是标量。标量与矩阵的所有元素分别进行加减操作。,3.2.矩阵乘()运算规则:A矩阵的列数必须等于B矩阵的行数例a=123;456;780;b=1;2;3;c=a*bc=143223标量可与任何矩阵相乘例d=-1;0;2;f=pi*df=-3.141606.2832,在matlab中矩阵除的运算有两种矩阵除运算,MATLAB用“/”代表右除(常用除法)和“”左除运算。这两种运算的差别如下:例如:2/5表示0.4,25表示2.5;对于矩阵,A/B表示AB-1,即A*inv(B);BA表示B-1A,即inv(B)*A。矩阵除法可以看作矩阵乘法的逆运算,3.3.矩阵除运算,例左除解方程组ax=b的解:x=ab,a=rand(5);%产生(5*5)的均匀分布随机矩阵b=ones(5,1);%产生全为1的5元列向量x1=inv(a)*bx1=-0.17340.55730.03090.72080.8147x2=abx2=-0.17340.55730.03090.72080.8147,apa自乘p次幂,方阵,1的整数,3.4矩阵乘方an,ap,pa,对于p的其它值,计算将涉及特征值和特征向量,如果p是矩阵,a是标量ap使用特征值和特征向量自乘到p次幂;如a,p都是矩阵,ap则无意义。,a=1,2,3;4,5,6;7,8,9;a2ans=303642668196102126150,当一个方阵有复数特征值或负实特征值时,非整数幂是复数阵。,a0.5ans=0.4498+0.7623i0.5526+0.2068i0.6555-0.3487i1.0185+0.0842i1.2515+0.0228i1.4844-0.0385i1.5873-0.5940i1.9503-0.1611i2.3134+0.2717i,inv矩阵求逆size矩阵的大小(行列数)det行列式的值eig矩阵的特征值rank矩阵的秩矩阵转置sqrt矩阵开方svd矩阵的奇异值分解,3.5.矩阵的其它运算,3.6.矩阵的一些特殊操作,矩阵的变维a=1:12;b=reshape(a,3,4)c=zeros(3,4);c(:)=a(:)矩阵的变向rot90:旋转;fliplr:上翻;flipud:下翻矩阵的抽取diag:抽取主对角线;tril:抽取主下三角;triu:抽取主上三角,4.数组的建立和运算,数组即只有一列的矩阵,可看作行向量;所有矩阵创建和修改的方法适用于数组1)Matlab提供了创建数组的命令(:或linspace):例:a=0:0.2:1a=00.20000.40000.60000.80001.0000x=linspace(0,1,10)%利用linspace产生间隔起始值0,终止值1,元素数为10的数组x=00.11110.22220.33330.44440.55560.66670.77780.88891.000,数组的运算元素对元素的算术运算,与通常意义上的由符号表示的线性代数矩阵运算不同数组加减(.+,.-)a.+ba.-b,对应元素相加减(与矩阵加减等效),2.数组乘除(,./,.)aba,b两数组必须有相同的行和列两数组相应元素相乘。a=123;456;789;b=246;135;7910;a.*bans=281841530497290,a=123;456;789;b=246;135;7910;a*bans=253746558510985133172,a./b=b.aa.b=b./aa./b=b.a都是a的元素被b的对应元素除a.b=b./a都是b的元素被a的对应元素除例:a=123;b=456;c1=a.b;c2=b./ac1=4.00002.50002.0000c2=4.00002.50002.0000,给出a,b对应元素间的商.,3.数组乘方(.)元素对元素的幂例:a=123;b=456;z=a.2z=1.004.009.00z=a.bz=1.0032.00729.00,常用矩阵向量运算数据统计处理,求最大值和最小值,求和与求积,求平均值和标准方差、中值与相关系数,排序,(一)求最大值和最小值,(1)y=max(X):返回向量X的最大值存入y,如果X中包含复数元素,则按模取最大值。,MATLAB提供的求数据序列的最大值和最小值的函数分别为max和min,1求向量的最大值和最小值求一个向量X的最大值的函数有两种调用格式,分别是:,(2)y,I=max(X):返回向量X的最大值存入y,最大值的序号存入I,如果X中包含复数元素,则按模取最大值。,求向量X的最小值的函数是min(X),用法和max(X)完全相同。,例求向量x的最大值。命令如下:x=-43,72,9,16,23,47;y=max(x)%求向量x中的最大值y,l=max(x)%求向量x中的最大值及其该元素的位置y=72y=72l=2,2求矩阵的最大值和最小值,(2)Y,U=max(A):返回行向量Y和U,Y向量记录A的每列的最大值,U向量记录每列最大值的行号。,求矩阵A的最大值的函数有3种调用格式,分别是:,(3)max(A,dim):dim取1或2。dim取1时,该函数和max(A)完全相同;dim取2时,该函数返回一个列向量,其第i个元素是A矩阵的第i行上的最大值。,求最小值的函数是min,其用法和max完全相同。,(1)y=max(A):返回一个行向量,向量的第i个元素是矩阵A的第i列上的最大值。,a=9,6,7;20,9,2;15,13,0;3,4,6a=967209215130346y=max(a)%每列的最大值y=20137y,u=max(a)%每列的最大值及下标y=20137u=231max(a,2)%dim=2,每行的最大值ans=920156,例分别求34矩阵中各列和各行元素中的最大值,3两个向量或矩阵对应元素的比较,函数max和min还能对两个同型的向量或矩阵进行比较,调用格式为:,(1)U=max(A,B):A,B是两个同型的向量或矩阵,结果U是与A,B同型的向量或矩阵,U的每个元素等于A,B对应元素的较大者。,(2)U=max(A,n):n是一个标量,结果U是与A同型的向量或矩阵,U的每个元素等于A对应元素和n中的较大者。,min函数的用法和max完全相同。,a=9,6,7;20,9,2a=9672092b=15,13,0;3,4,6b=15130346u=max(a,b)%找出同一位置的最大值u=151372096,例求两个23矩阵x,y所有同一位置上的较大元素构成的新矩阵p。,(二)求和与求积,sum(X):返回向量X各元素的和。prod(X):返回向量X各元素的乘积。sum(A):返回一个行向量,其第i个元素是A的第i列的元素和。prod(A):返回一个行向量,其第i个元素是A的第i列的元素乘积。sum(A,dim):当dim为1时,该函数等同于sum(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素之和。prod(A,dim):当dim为1时,该函数等同于prod(A);当dim为2时,返回一个列向量,其第i个元素是A的第i行的各元素乘积。,数据序列求和与求积的函数是sum和prod,其使用方法类似。设X是一个向量,A是一个矩阵,函数的调用格式为:,在MATLAB中,使用cumsum和cumprod函数能方便地求得向量和矩阵元素的累加和与累乘积向量,调用格式同上,例求矩阵A的每行元素的乘积和全部元素的乘积。a=1,2,3;4,5,6a=123456a_s=sum(a)%每列之和a_s=579a_s2=sum(a,2)%dim=2,每行之和a_s2=615a_p=prod(a)%每列之积a_p=41018a_p2=prod(a,2)%每行之积a_p2=6120,%累加和举例cumsum函数a=1,2,3;4,5,6;3,4,5a=123456345,a_cs=cumsum(a)%求每列的累加和a_cs=12357981114,求数据序列平均值的函数是mean求数据序列标准方差的函数是std求数据序列中值的函数是mediancorrcoef函数可求出数据的相关系数矩阵,(三)求平均值和标准方差、中值与相关系数,例生成满足正态分布的100005随机矩阵,然后求各列元素的均值和标准方差,再求这5列随机数据的相关系数矩阵,命令如下:X=randn(10000,5);M=mean(X)D=std(X)R=corrcoef(X),(四

温馨提示

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

评论

0/150

提交评论