第一章 MATLAB矩阵运算与数组运算
MATLAB矩阵操作教程
MATLAB矩阵操作教程第一章:MATLAB中的矩阵介绍1.1 什么是矩阵矩阵是由数个行和列组成的矩形数组,可以用于表示数据和进行数值计算。
1.2 创建矩阵在MATLAB中,可以使用矩阵生成算符进行矩阵的创建,如使用方括号,分号和逗号分隔元素。
1.3 矩阵索引MATLAB中的矩阵索引从1开始,可以使用括号和索引访问矩阵中的元素。
1.4 矩阵运算MATLAB提供了丰富的矩阵运算函数,如加法、减法、乘法、除法等,可用于执行矩阵操作。
第二章:MATLAB矩阵的基本操作2.1 矩阵转置可以使用单引号将矩阵转置,即将矩阵的行变为列,列变为行。
使用方括号和逗号将矩阵进行水平或垂直合并。
2.3 矩阵切片可以使用冒号运算符和索引,对矩阵进行切片操作,提取出所需的子矩阵。
2.4 矩阵重塑使用reshape函数可以改变矩阵的形状,重新组织矩阵元素的排列顺序。
2.5 矩阵求逆使用inv函数求矩阵的逆矩阵,如果矩阵不可逆,则会报错。
第三章:MATLAB矩阵的高级操作3.1 特征值与特征向量使用eig函数可以计算矩阵的特征值和特征向量,以进行其他相关计算。
3.2 矩阵分解MATLAB中提供了多种矩阵分解函数,如LU分解、QR 分解、奇异值分解等,可用于求解线性方程组、矩阵逆等问题。
使用左除运算符(\)和右除运算符(/)可以求解形如AX=B的线性方程组。
3.4 矩阵迭代可以使用循环结构和条件判断,在MATLAB中实现矩阵的迭代计算。
第四章:MATLAB中的矩阵应用4.1 数据处理与分析使用MATLAB可以进行各种数据处理和分析,如平均值计算、数据拟合、统计分析等。
4.2 信号处理利用MATLAB中的矩阵操作函数,可以进行信号滤波、频谱分析、波形生成等信号处理操作。
4.3 图像处理MATLAB中的矩阵操作函数可用于图像的载入、处理、显示和保存,如图像滤波、边缘检测、图像分割等。
4.4 机器学习利用MATLAB中的矩阵操作与机器学习算法相结合,可以进行分类、回归、聚类等机器学习任务。
matlab矩阵运算和数组运算
matlab矩阵运算和数组运算作者:佚名教程来源:网络点击数:1368 更新时间:2010-5-3矩阵运算和数组运算是Matlab的数值运算中的两大类运算。
矩阵运算是按矩阵运算法则进行的运算;数组运算无论是何种运算操作都是对元素逐个进行。
矩阵运算和数组运算指令对照汇总矩阵运算指令指令含义数组运算指令指令含义A' 矩阵转置 A.+B 对应元素相加A+B 矩阵相加 A.-B 对应元素相减A-B 矩阵相减 A.*B 同维数组对应元素相乘s+B 标量加矩阵 s.*A A的每个元素乘ss-B,B-s 标量矩阵相减 A./B A的元素被B的对应元素除A*B 矩阵相乘 B.\A 同上A/B A右除B s./B, B.\s s 分别被B的元素除B\A A左除B A.^n A的每个元素自乘n 次inv(A) 矩阵求逆 log(A) 对A的每个元素求对数A^n 矩阵的n次幂 sqrt(A) 对A的每个元素求平方根f(A) 求A的各个元素的函数值例:a=[1 2 3; 4 5 6; 7 8 9];b=[1 2 3; 3 2 1;1 4 5];c=[1 1 1;2 3 1;1 0 2];d=a*c^2+bd =32 31 3682 79 82128 129 1343.4 矩阵函数和数组函数3.4.1 基本数组函数数组函数是对各个元素的函数设计的。
f(.)基本函数表函数名称功能函数名称功能sin 正弦 acosh 反双曲余弦cos 余弦 atanh 反双曲正切tan 正切 acoth 反双曲余切cot 余切 asech 反双曲正割sec 正割 acsch 反双曲余割csc 余割 fix 朝零方向取整asin 反正弦 ceil 朝正无穷大方向取整acos 反余弦 floor 朝负无穷大方向取整atan 反正切 round 四舍五入到整数atan2 四象反正切 rem 除后取余数acot 反余切 sign 符号函数asec 反正割 abs 绝对值acsc 反余割 angle 复数相角sinh 双曲正弦 imag 复数虚部cosh 双曲余弦 real 复数实部tanh 双曲正切 conj 复数共轭coth 双曲余切 log10 常用对数sech 双曲正割 log 自然对数csch 双曲余割 exp 指数asinh 反双曲正弦 aqrt 平方根f(.)特殊函数表函数名称功能函数名称功能bessel 第一、第二类Bessel函数 erf 误差函数beta Beta函数 eerfinv 逆误差函数gamma Gamma函数 ellipk 第一、第二类全椭圆积分rat 有理近似 ellipj Jacobi椭圆函数3.4.2 基本矩阵函数基本矩阵函数指令函数指令指令含义函数指令指令含义cond(A) 矩阵的条件数(最大奇异值除以最小奇异值) svd(A) 矩阵的奇异值分解det(A) 方阵的行列式 trace(A) 矩阵的迹dot(A,B) 矩阵的点积 expm(A) 矩阵指数eig(A) 矩阵的特征值 expm1(A) 用Pade近似求norm(A,1) 矩阵1-范数 expm2(A) 用Taylor级数近似求,精度稍差,但对任何方阵适用norm(A) 矩阵的2-范数 expm3(A) 用矩阵分解求,仅当独立调整向量数目等于秩时适用norm(A,inf) 矩阵的无穷范数 logm(A) 矩阵对数ln(A)norm(A,'fro') 矩阵的f-范数(全部奇异值平方和的正平方根) sqrtm(A) 平方根矩阵rank(A) 矩阵的秩(非零奇异值的个数)rcond(A) 矩阵的倒条件数 funm(A,'fn') A阵的一般矩阵函数例:注意观察奇异值与矩阵各性质的关系a=magic(5);s=svd(a)'d=det(a),t=trace(a),rk=rank(a),c=cond(a)n1=norm(a,1),n2=norm(a),ninf=norm(a,inf),nf=norm(a,'fro')s =65.0000 22.5471 21.6874 13.4036 11.9008d =5070000t =65rk =5c =5.4618n1 =65n2 =65.0000ninf =65nf =74.33033.5 线性方程组的直接解法线性方程组Ax=b,A是的系数矩阵1) 当n=m且非奇异时,此方程称为“恰定”方程(Properly Determined Equation)2) 当n>m时,此方程称为“超定”方程(Overdetermined Equation)3) 当n<m时,此方程称为“欠定”方程(Underdetermined Equation)3.5.1 矩阵逆和除法解恰定方程组(1)采用求逆运算:x=inv(A)*b(2)采用左除运算:x=A\b说明:1、由于MATLAB 遵循IEEE算法,所以即使A阵奇异,该运算也照样进行。
matlab中的矩阵运算和数组运算方法
matlab中的矩阵运算和数组运算方法MATLAB 具有两种不同类型的算术运算:数组运算和矩阵运算。
您可以使用这些算术运算来执行数值计算,例如两数相加、计算数组元素的给定次幂或两个矩阵相乘。
矩阵运算遵循线性代数的法则。
数组运算则是执行逐元素运算并支持多维数组。
句点字符(.) 将数组运算与矩阵运算区别开来。
但是,由于矩阵运算和数组运算在加法和减法的运算上相同,因此没有必要使用字符组合 .+ 和 .-。
数值运算加法,例如A+B,+B减法,例如A-B,-B按元素乘法。
点乘,A.*B 表示 A 和 B 的逐元素乘积。
按元素求幂,A.^B 表示包含元素 A(i,j) 的 B(i,j) 次幂的矩阵。
数组右除,A./B 表示包含元素 A(i,j)/B(i,j) 的矩阵。
数组左除,A.\B 表示包含元素 B(i,j)/A(i,j) 的矩阵。
数组转置,A.' 表示 A 的数组转置。
对于复矩阵,这不涉及共轭。
矩阵运算矩阵乘法,C = A*B 表示矩阵 A 和 B 的线性代数乘积。
A 的列数必须与 B 的行数相等。
矩阵左除,x = A\B 是方程 Ax = B 的解。
矩阵 A 和 B 必须拥有相同的行数。
A\B = inv(A)*B矩阵右除,x = B/A 是方程 xA = B 的解。
矩阵 A 和 B 必须拥有相同的列数。
有B/A = (A'\B')'。
矩阵幂,A^B 表示 A 的 B 次幂(如果 B 为标量)。
对于 B 的其他值,计算包含特征值和特征向量。
转置,A' 表示 A 的线性代数转置。
对于复矩阵,这是复共轭转置。
逆矩阵,inv(A)或者A^(-1),A必须是方矩阵,也就是需要行列数相等。
行列式值,det(A)说明当方程形式是Ax=B时,则x=A\B=inv(A)*B;当方程形式是xA=B时,则x=B/A=B*inv(A);其中inv()是求逆矩阵。
[Matlab]数组运算和矩阵运算
上面方程是超定方程.要注意的:结果矩阵 x 是列向量形式.如果, >> a=[21 34 20 5; 78 20 21 14; 17 34 31 38]; >> b=[10 20 30]'; >> x=b\a x= 1.6286 1.2571 1.1071 1.0500 上面的方程为不定方程. 4. 矩阵与标量间的四则运算 矩阵与标量的四则运算和数组与标量间的四则运算完全相同,即矩阵中的每个元素与标量进 行加,减,乘,除四则运算.需要说明的是,当进行除法运算时,标量只能做除数. 5. 矩阵的幂运算 矩阵的幂运算与标量的幂运算不同.用符号"^",它不是对矩阵的每个元素进行幂运算,而是与 矩阵的某种分解有关. >> b=[21 34 20; 78 20 21; 17 34 31]; >> c=b^2 c= 3433 2074 1754 3555 3766 2631 3536 2312 2015 6. 矩阵的指数,对数运算与开方运算 矩阵的指数运算,对数运算与开方运算与数组相应的运算是不同的.它并不是对矩阵中的单个 元素的运算,而是对整个矩阵的运算.这些运算函数如下: expm, expm1, expm2, expm3 —— 指数运算函数; logm —— 对数运算函数; sqrtm —— 开方运算函数. >> a=[1 3 4; 2 6 5; 3 2 4]; >> c=expm(a) c= 1.0e+004 * 0.4668 0.7694 0.9200
矩阵 B 的逆乘标量 s A.^n 数组 A 的每个元素的 n 次方 A^n A 为方阵时,矩阵 A 的 n 次方 A+B 数组对应元素的相加 A+B 矩阵相加 A-B 数组对应元素的相减 A-B 矩阵相减 A.*B 数组对应元素的相乘 A*B 内维相同矩阵的乘积 A./B A 的元素被 B 的对应元素除 A/B A 右除 B B.\A 一定与上相同 B\A A 左除 B(一般与右除不同) exp(A) 以 e 为底,分别以 A 的元素为指数,求幂 expm(A) A 的矩阵指数函数 log(A)
实验6 matlab矩阵运算与数组运算
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电,通力根1保过据护管生高线产中敷工资设艺料技高试术中卷0资不配料仅置试可技卷以术要解是求决指,吊机对顶组电层在气配进设置行备不继进规电行范保空高护载中高与资中带料资负试料荷卷试下问卷高题总中2体2资,配料而置试且时卷可,调保需控障要试各在验类最;管大对路限设习度备题内进到来行位确调。保整在机使管组其路高在敷中正设资常过料工程试况1卷中下安,与全要过,加度并强工且看作尽护下可1都关能可于地以管缩正路小常高故工中障作资高;料中对试资于卷料继连试电接卷保管破护口坏进处范行理围整高,核中或对资者定料对值试某,卷些审弯异核扁常与度高校固中对定资图盒料纸位试,置卷编.工保写况护复进层杂行防设自腐备动跨与处接装理地置,线高尤弯中其曲资要半料避径试免标卷错高调误等试高,方中要案资求,料技编试术写5、卷交重电保底要气护。设设装管备备置线4高、调动敷中电试作设资气高,技料课中并3术试、件资且中卷管中料拒包试路调试绝含验敷试卷动线方设技作槽案技术,、以术来管及避架系免等统不多启必项动要方高式案中,;资为对料解整试决套卷高启突中动然语过停文程机电中。气高因课中此件资,中料电管试力壁卷高薄电中、气资接设料口备试不进卷严行保等调护问试装题工置,作调合并试理且技利进术用行,管过要线关求敷运电设行力技高保术中护。资装线料置缆试做敷卷到设技准原术确则指灵:导活在。。分对对线于于盒调差处试动,过保当程护不中装同高置电中高压资中回料资路试料交卷试叉技卷时术调,问试应题技采,术用作是金为指属调发隔试电板人机进员一行,变隔需压开要器处在组理事在;前发同掌生一握内线图部槽 纸故内资障,料时强、,电设需回备要路制进须造行同厂外时家部切出电断具源习高高题中中电资资源料料,试试线卷卷缆试切敷验除设报从完告而毕与采,相用要关高进技中行术资检资料查料试和,卷检并主测且要处了保理解护。现装场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。
Matlab矩阵运算与数组运算参考资料
一Matlab矩阵运算与数组运算实验目的:1.理解矩阵及数组概念.2.掌握Matlab对矩阵及数组的操作命令.实验内容:1.矩阵与数组的输入.对于较小较简单的矩阵,从键盘上直接输入矩阵是最常用的数值矩阵创建方法.用这种方法输入矩阵时注意以下三点:(1)整个输入矩阵以方括号“[ ]”为其首尾;(2)矩阵的元素必须以逗号“,”或空格分隔;(3)矩阵的行与行之间必须用分号“;”或回车键隔离.例1:下面的指令可以建立一个3行4列的矩阵a.a=[1 2 3 4;5 6 7 8;9 10 11 12]↵(下面是屏幕的显示结果)a =1 2 3 45 6 7 89 10 11 12注:分号“;”有三个作用:(1)在“[ ]”方括号内时它是矩阵行间的分隔符.(2)它可用作指令与指令间的分隔符.(3)当它存在于赋值指令后,该指令执行后的结果将不显示在屏幕上.例如,输入指令:b=[1 2 0 0;0 1 0 0;1 1 1 1];矩阵b将不显示,但b已存放在Matlab 的工作内存中,可随时被以后的指令所调用或显示.例如,输入指令:b↵结果为:b =1 2 0 00 1 0 01 1 1 1数值矩阵的创建还可由其他方法实现.如:利用Matlab函数和语句创建数值矩阵;利用m文件创建数值矩阵;从其他文件获取数值矩阵.有兴趣的读者可参阅其他参考书.数组可以看成特殊的矩阵,即1行n列的矩阵,数组的输入可以采用上面矩阵的输入方法.例2:输入以下指令以建立数组c.c=[1 2 3 4 5 6 7 8]↵c =1 2 3 4 5 6 7 8另外还有两种方法输入数组.请看下面两个例子.例3:在0和2中间每隔0.1一个数据建立数组d.解:输入指令:d=0:0.1:2↵d =Columns 1 through 70 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000Columns 8 through 140.7000 0.8000 0.9000 1.0000 1.1000 1.2000 1.3000Columns 15 through 211.4000 1.5000 1.6000 1.7000 1.8000 1.90002.0000例4:在0和2之间等分地插入一些分点,建立具有10个数据点的数组e . 解:输入指令:e=linspace(0,2,10) ↵e =Columns 1 through 70 0.2222 0.4444 0.6667 0.8889 1.1111 1.3333 Columns 8 through 101.5556 1.77782.0000注:linspace(a ,b ,n)将建立从a 到b 有n 个数据点的数组.2.常用矩阵的生成.Matlab 为方便编程和运算,提供了一些常用矩阵的生成指令:eye(n) n n ⨯单位矩阵ones(n) n n ⨯全1矩阵zeros(n) n n ⨯零矩阵eye(m ,n) n m ⨯标准型矩阵ones(m ,n) n m ⨯全1矩阵zeros(m ,n) n m ⨯零矩阵eye(size(A)) 与A 同型的标准型矩阵ones(size(A)) 与A 同型的全1矩阵zeros(size(A)) 与A 同型的零矩阵注:其中指令size(A)给出矩阵A 的行数和列数.例5:生成以下矩阵.(1)33⨯零矩阵.(2)63⨯全1矩阵.(3)与例1中矩阵a 同型的标准型矩阵.解:输入下面指令:d=zeros(3) ↵d =0 0 00 0 00 0 0e=ones(3,6) ↵e =1 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1f=eye(size(a)) ↵f =1 0 0 00 1 0 00 0 1 03.矩阵元素的标识.矩阵的元素、子矩阵可以通过标量、向量、冒号的标识来援引和赋值.(1)矩阵元素的标识方式A(ni ,nj).ni ,nj 都是标量.若它们不是整数,则在调用格式中会自动圆整到最临近整数.ni 指定元素的行位置,nj 指定元素的列位置.(2)子矩阵的序号向量标识方式A(v ,w).v,w是向量,v,w中的任意一个可以是冒号“:”,表示取全部行(在v位置)或全部列(在w位置).v,w中所用序号必须大于等于1且小于等于矩阵的行列数.例6:元素和矩阵的标识a=[1 2 3 4;5 6 7 8;9 10 11 12]↵a =1 2 3 45 6 7 89 10 11 12a24=a(2,4)↵a24 =8a1=a([1,2],[2,3,4])↵a1 =2 3 46 7 8a2=a([1,2],[2,3,1])↵a2 =2 3 16 7 5a3=a([3,1],:)↵a3 =9 10 11 121 2 3 4a([1,3],[2,4])=zeros(2)↵a =1 0 3 05 6 7 89 0 11 04.矩阵运算和数组运算.矩阵运算的指令和意义如下:A' 矩阵A的共轭转置矩阵,当A是实矩阵时,A' 是A的转置矩阵.A+B 两个同型矩阵A与B相加.A-B 两个同型矩阵A与B相减.A*B 矩阵A与矩阵B相乘,要求A的列数等于B的行数.s+B 标量和矩阵相加(Matlab约定的特殊运算,等于s加B的每一个分量).s-B B-s 标量和矩阵相减(Matlab约定的特殊运算,含意同上).s*A 数与矩阵A相乘.例7:a=[1 2 3;4 5 6]↵a =1 2 34 5 6b=[-1 0 1;3 1 2]↵b =-1 0 13 1 2a'↵ans =1 42 53 6a+b↵ans =0 2 47 6 8a-b↵ans =2 2 21 4 41+a↵ans =2 3 45 6 7a-1ans =0 1 23 4 52*b↵ans =-2 0 26 2 4c=[2 4;1 3;0 1]↵c = 2 41 30 1a*c↵ans = 4 1313 37数组可以看成特殊矩阵即一行n列的矩阵,矩阵运算的指令和含意同样适用于数组运算.如果在运算符前加“.”,其意义将有所不同.A.*B 同维数组或同型矩阵对应元素相乘.A./B A的元素被B的元素对应除.A.^n A的每个元素n次方.p.^A 以p为底,分别以A的元素为指数求幂.例8:a=[1 2 3;4 5 6]↵a =1 2 34 5 6b=[-1 0 1;3 1 2]↵b =-1 0 13 1 2a.*b↵ans =-1 0 312 5 12a./b↵Warning: Divide by zero.ans =-1.0000 Inf 3.00001.3333 5.0000 3.0000a.^2↵ans =1 4 916 25 362.^a↵ans =2 4 816 32 64二矩阵与线性方程组实验目的:1.掌握Matlab求矩阵的秩命令.2.掌握Matlab求方阵的行列式命令.3.理解逆矩阵概念,掌握Matlab求逆矩阵命令.4.会用Matlab求解线性方程组.实验内容:1.矩阵的秩.指令rank(A)将给出矩阵A的秩.例1:a=[3 2 -1 -3 -2;2 -1 3 1 -3;7 0 5 -1 -8]↵a =3 2 -1 -3 -22 -13 1 -37 0 5 -1 -8rank(a)↵ans =22.方阵的行列式.指令det(A)给出方阵A的行列式.例2:b=[1 2 3 4;2 3 4 1;3 4 1 2;4 1 2 3];det(b)↵ans =160det(b')↵ans =160c=b;c(:,1)=2*b(:,1);det(c)↵ans =320det(b(:,[3 2 1 4]))↵ans =-160d=b;d(2,:);det(d)↵ans =160注:在这里我们实际上验证了行列式的性质.你能否给出上例运算结果的一个解释?3.逆矩阵.指令inv(A)给出方阵A的逆矩阵,如果A不可逆,则inv(A)给出的矩阵的元素都是Inf.例3:设123221343A⎛⎫⎪= ⎪⎪⎝⎭,求A的逆矩阵.解:输入指令:A=[1 2 3;2 2 1;3 4 3]; B=inv(A)↵B =1.0000 3.0000 -2.0000-1.5000 -3.0000 2.50001.0000 1.0000 -1.0000还可以用伴随矩阵求逆矩阵,打开m文件编辑器,建立一个名为company-m的M-文件文件内容为:function y=company-m(x)[n,m]=size(x);y=[];for j=1:n;a=[];for i=1:n;x1=det(x([1:i-1,i+1:n],[1:j-1,j+1:n]))*(-1)^(i+j);a=[a,x1];endy=[y;a];end利用该函数可以求出一个矩阵的伴随矩阵.输入命令:C=1/det(A)*company-m(A)↵C =1.0000 3.0000 -2.0000-1.5000 -3.0000 2.50001.0000 1.0000 -1.0000利用初等变换也可以求逆矩阵,构造n行2n列的矩阵(A E),并进行行初等变换,当把A变为单位矩阵时,E就变成了A的逆矩阵.利用Matlab命令rref可以求出矩阵的行简化阶梯形.输入命令:D=[A,eye(3)]↵D =1 2 3 1 0 02 2 1 0 1 03 4 3 0 0 1rref(D)↵ans =1.0000 0 0 1.0000 3.0000 -2.00000 1.0000 0 -1.5000 -3.0000 2.50000 0 1.0000 1.0000 1.0000 -1.0000m n⨯线性方程组AX B=的求解是通过矩阵的除法来完成的,\X A B=,当m n=且A可逆时,给出唯一解.这时矩阵除\A B相当于()inv A B*;当n m>时,矩阵除给出方程的最小二乘意义下的解;当n m<时,矩阵除给出方程的最小范数解.例4:12341234123134212121x x x xx x x xx x xx x x-++=⎧⎪+-+=⎪⎨++=⎪⎪+-=⎩求解方程组:解:输入命令:a=[1 -1 1 2;1 1 -2 1;1 1 1 0;1 0 1 -1];b=[1;1;2;1];x=a\b↵x =0.83330.75000.41670.2500或者输入命令:z=inv(a)*b ↵z =0.83330.75000.41670.2500例5:解方程组:⎪⎩⎪⎨⎧=-++-=-++-=--++8343242222543215432154321x x x x x x x x x x x x x x x解:方程的个数和未知数不相等,用消去法,将增广矩阵化为行简化阶梯形,如果系数矩阵的秩不等于增广矩阵的秩,则方程组无解;如果系数矩阵的秩等于增广矩阵的秩,则方程组有解,方程组的解就是行简化阶梯形所对应的方程组的解.输入命令:a=[2 1 1 -1 -2 2;1 -1 2 1 -1 4;2 -3 4 3 -1 8];rref(a) ↵ans =1 0 0 0 0 00 1 0 -1 -1 00 0 1 0 -1 2从结果看出,4x ,5x 为自由未知量,方程组的解为:01=x542x x x +=532x x +=例6:解方程组:⎪⎪⎩⎪⎪⎨⎧=+--=--=-+-=+--0320030432142143214321x x x x x x x x x x x x x x x解:输入命令:a=[1 -1 -1 1;1 -1 1 -3;1 -1 0 -1;1 -1 -2 3];rref(a) ↵ans =1 -1 0 -10 0 1 -20 0 0 00 0 0 0由结果看出,2x ,4x 为自由未知量,方程组的解为:421x x x +=432x x =。
MATLAB数学手册教程 第1章 矩阵及其基本运算
第1章矩阵及其基本运算MATLAB,即“矩阵实验室”,它是以矩阵为基本运算单元。
因此,本书从最基本的运算单元出发,介绍MATLAB的命令及其用法。
1.1 矩阵的表示1.1.1 数值矩阵的生成1.实数值矩阵输入MATLAB的强大功能之一体现在能直接处理向量或矩阵。
当然首要任务是输入待处理的向量或矩阵。
不管是任何矩阵(向量),我们可以直接按行方式输入每个元素:同一行中的元素用逗号(,)或者用空格符来分隔,且空格个数不限;不同的行用分号(;)分隔。
所有元素处于一方括号([ ])内;当矩阵是多维(三维以上),且方括号内的元素是维数较低的矩阵时,会有多重的方括号。
如:>> Time = [11 12 1 2 3 4 5 6 7 8 9 10]Time =11 12 1 2 3 4 5 6 7 8 9 10>> X_Data = [2.32 3.43;4.37 5.98]X_Data =2.433.434.375.98>> vect_a = [1 2 3 4 5]vect_a =1 2 3 4 5>> Matrix_B = [1 2 3;>> 2 3 4;3 4 5]Matrix_B = 1 2 32 3 43 4 5>> Null_M = [ ] %生成一个空矩阵2.复数矩阵输入复数矩阵有两种生成方式:第一种方式例1-1>> a=2.7;b=13/25;>> C=[1,2*a+i*b,b*sqrt(a); sin(pi/4),a+5*b,3.5+1]C=1.0000 5.4000 + 0.5200i 0.85440.7071 5.3000 4.5000第2种方式例1-2>> R=[1 2 3;4 5 6], M=[11 12 13;14 15 16]R =1 2 34 5 6M =11 12 1314 15 16>> CN=R+i*MCN =1.0000 +11.0000i2.0000 +12.0000i3.0000 +13.0000i4.0000 +14.0000i5.0000 +15.0000i6.0000 +16.0000i1.1.2 符号矩阵的生成在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号(symbol)矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。
第一章MATLAB矩阵运算与数组运算
第一章MATLAB矩阵运算与数组运算矩阵运算与数组运算MATLAB中最基本的数据对象就是数组或矩阵,标量可看作是1*1 的矩阵,向量可看作是l*n或n*l的矩阵.一维数组是向量,二维数组便是矩阵,还有三维甚至更高维的数组。
标量运算是数学的基础,然而,当需要对多个数执行同样的运算时,采用数组或矩阵运算将非常简洁和方便.1.4.1 创建矩阵1.直接定义例子键入:A=[1 2 3;4 5 6]输出:A=1 2 34 5 6这里A为一个2行3列的数组或矩阵.空格或逗号用于分隔某一行的元素,分号表示开始新的一行.键入:A(2,3)=0 %将第2行,第3列的元素置为0.输出:A=1 2 34 5 02.一维数组的简单构造前面我们通过键人矩阵或数组中的每个元素来输人一个矩阵或数组,当数组中的元素有成百上千时,怎么办呢?对于一维数组有两种简单的输人格式。
例如,X=0:0.1:1 %从0到l,增量为0.1.X=linspace(0,pi,11)%11 个从0到pi的等间隔数,在MATLAB中这两种创建数组的方式是最常见的.上述数组创建形式所得到的数组的元素之间是线性分隔的特殊情况,当需要对数分隔的数组时,MATLAB提供了函数logspace.格式:x=logspace(first,last,n)创建从10的first次方开始,到10的last次方结束,有n个元素的对数分隔行向量x.有时所需的数组不具有易于描述的线性或对数分隔关系,这时使用数组编址和表达式结合的功能可避免每次一个地输人数组元素.例子键入:a=1:5; b=1:2:9;c=[b a]输出:第一章MATLAB矩阵运算与数组运算1 3 5 7 8 1234 5创建的数组c,由b中元素和a中元素构成.又如,键入:d=[a(1:2:5)1 0 1]输出:d=1 3 5 1 0 1上述所创建的数组都是行向量,如何创建列向量呢?可使用转置算子(’)把行向量变成列向量.如键入:a=1:4;%表示从1到4,增量为1的行向量b=a’ %表示向量的转置输出:b=1234有两种转置的符号:l)当数组是复数时,(’)产生的是复数共轭转置;2) (.’)只对数组转置,但不进行共轭.3.一维数组的操作例子键入:x=[0.1*pi.2*pi.3*pi.4*pi.5*pi.6*pi.7*pi.8*pi.9*pi pi]y=sin(x)输出:y=Columns 1 through 70 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511Columns 8 through 110.8090 0.5878 0.3090 0.0000在MATLAB中,数组元素用下标访问,如y(2)是y的第2个元素.例如,键入:y(3) %表示y的第3个元素输出:ans=0.5878为了同时访问一块元素,MATLAB用冒号来表示.键入:x(1:5)输出:第一章MATLAB矩阵运算与数组运算0 0.3124 0.6283 0.9425 1.2566键人:y(3:-1:1)输出:ans=0.5878 0.3090 03:-1:1表示从3开始减1计数,到1为止.又如键入:x(2:2:7)输出:ans=0.3142 0.9425 1.57082:2:7表示从2开始加2计数,到7为止.再如键人:y([8 2 9 1])输出:ans=0.8090 0.3090 0.5878 0这里是按照数组[8 2 9 1]提供的次序来提取y数组中的元素4.矩阵的剪裁与拼接从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,冒号“:”是非常重要的剪裁工具。
第一章 Matlab中的数组操作讲解
b=[2,3,-1,5,6], A=diag(b,1)
0 2 0 0 0 0
0 0 3 0 0 0 0 0 0 -1 0 0 0 0 0 0 5 0 0 0 0 0 0 6
B=diag(b,-2)
a=linspace(1,20,6)
a= 1.00 4.80 8.601,3,5个元素构成数组b: b=a(1:2:5) 提取a的第2到5个元素,并反转次序构成数组b1: b1=a(5:-1:2) 按条件提取子数组: 提取a的元素值大于10的元素构成数组b2 b2=a(find(a>10))
a= 'matlab' [2x3 double] [4x5 double] [ 20]
[1x10 double] [4x4 double]
a=
'matlab' [2x3 double] [4x5 double] [ 20] b=a(3,2)
[1x10 double] [4x4 double]
b=
[4x4 double]
0 0 -1 0 0 0 0
0 0 0 5 0 0 0 0 0 0 0 6 0 0
0 0 0 0 0 0
例1.1 输入n阶矩阵
4 2 1 A 0 2 4 2 1 1 2 4 2 1 2 4 1 0 1 2 4
n=input('输入方阵阶数n=')
D=10
N=
M=
3
3
2
1
wxy
wxz
3
2
7
1
wyz
MATLAB之(一)数组、矩阵和函数及运算
load madtl
5变量值的显示
作为运算结果的变量值,在表达式计算后在屏幕上显
示出来,但在表达式结尾加一个分号“;”,该结果不再显
示。
显示
在MATLAB中数据可以用多种格式显示,显
格式: 示格式用显示命令指定。显示命令主要有:
•format short(短格式,省缺显示);
•format long(长格式); •format bank; •format rat(分数格式);
• 如果表达式太长,可以用续行号“…”将其延续到下一 行。
• 一行中可以写几个语句,它们之间要用逗号或分号分 开。
2021/4/14
18
a=[1,2,3,4,5];b=[1,3,5,7,9];…
c=a.*b,d=a*b’,e=a’*b回车 e =
c=
13579
1 6 15 28 45
2 6 10 14 18
从一个矩阵中取出若干行(列)构成新的矩阵称为裁 剪,MATLAB中“:”的使用是非常重要的裁剪工具, 如: C=A(2:3,:)
C=
D=C(:,2:4)
7560
D=
7800 注:A(2:3,:)中“2:3”表示取 2至32行021/,4/14“:”表示取所有的
560
800
10
A(3,:) ans =
•符号运算;
•傅立叶变换和数据的统计分析;
•工程中的优化问题;
•稀疏矩阵运算;
2021/•4/复14 数的各种运算等等。
3
3.具有出色的图形处理功能
4.具有应用广泛的模块集和工具箱,一般来说是由特定领 域专家开发的,用户可以直接使用工具箱学习、应用和评 估不同的方法而不需要自己编写代码。
matlab 矩阵与数组解析
3.3.1 多项式表示法
多项式表示:
行向量——其中元素按多项式降 幂排列。
例如: f(x)=anxn+an-1xn-1+……+a0 行向量: [ an an-1 …… a0 ]
函数 poly2str() 将多项式系 数向量转换为完整形式。
[f,len]=poly2str(A,’x’);
2
3.1 矩阵运算
3.1.1 矩阵加、减(+,-)运算 3.1.2 矩阵乘(*)运算 3.1.3 矩阵除(/,\)运算 3.1.4 矩阵乘方—— A^n,a^p 3.1.5 矩阵关系运算符 3.1.6 矩阵逻辑运算符
3
3.1.1 矩阵加、减(+,-)运算
两矩阵对应元素相加减。 标量可以和任意矩阵相加减,且与所有元素分
12
3.2.1 数组加减(+,-)
对应元素相加减(与矩阵加减等效)
13
3.2.2 数组乘除(*,./,.\)
数组乘(.*)点乘
数组对应元素相乘 数组必须有相同的行和列
14
3.2.2 数组乘除(,./,.\)
A./B =B.\A —— A的元素被B的对应元素除 B./A =A.\B —— B的元素被A的对应元素除
10
3.1.6 矩阵逻辑运算符
比特方式逻辑运算符只接受逻辑和非负 整数类型的输入变量,它是针对输入变 量的二进制表示进行逻辑运算。
11
3.2 数组运算 数组运算指矩阵元素和元素之间
的算术运算 3.2.1 数组加减(+,-) 3.2.2 数组乘除(,/,\) 3.2.3 数组乘方(^) 3.2.4 运算优先级
矩阵与标量关系:标量与矩阵的所有元素进行 运算。
8
3.1.5 矩阵关系运算符
1.2 MATLAB中数组及矩阵运算
1.2.3 矩阵运算与函数
由于线性代数的广泛应用,矩阵计算出现于多种场合。事实上, 最初开发MATLAB软件的目的就是为了化简矩阵和线性代数计 算, MATLAB还提供了用于求解数值代数问题的矩阵函数, 部分数
意义
方阵A的行列式 方阵A的逆矩阵,要求对应的行列式不等于零 方阵A的条件数(最大特征值与最小特征值之比) 方阵A的特征向量和特征值(v为特征向量,d为特征值) 矩阵A的范数或向量的模 矩阵A的秩 矩阵A的行阶梯矩阵 方阵A的QR正交分解 方阵A的Cholesky分解 方阵A的LU分解 方阵A的迹(对角线元素之和)
n阶魔方矩阵
1.2.2 向量和矩阵的建立与访问
在《射雕》中郭黄二人被裘 千仞追到黑龙潭,躲进瑛姑 的小屋。瑛姑出了一道题: 数字1-9填到三行三列的表 格中,要求每行、每列、及 两条对角线上的和都相等。 这道题难倒了瑛姑十几年, 被黄蓉一下子就答出来了。 492 357 816
1.2.2 向量和矩阵的建立与访问
其中,(1)由于x为向量,所以函数中的平方、成 绩以及商的运算均使用点运算,否则为非法操 作。 例如: x.^2 *cos(x)
(2) 由于x中可能出现0分量,为避免出现0为分 母,所以用x+eps取代x作分母,其中eps为系 统运算时计算机允许取到的最小值; >> eps ans = 2.2204e-016
函数名
det(A) inv(A) cond(A) [v,d]=eig(A) norm(A) rank(A) rref(A) qr(A) chol(A) lu(A) trace(A)
例如:a=[1 2 3;4 5 6;7 8 9]; >> d=eig(a) % 求方阵a的特征值返回到列向量 并显示 d = 16.1168 -1.1168 -0.0000
matlabmatlab 数组运算和矩阵运算的各个要求 -回复
matlabmatlab 数组运算和矩阵运算的各个要求-回复标题:Matlab中的数组运算和矩阵运算详解在Matlab中,数组和矩阵是两种基本的数据结构,它们在数值计算、科学计算、工程问题等领域有着广泛的应用。
理解和掌握Matlab中的数组运算和矩阵运算对于提升编程效率和解决实际问题具有重要意义。
以下将详细解析Matlab中数组运算和矩阵运算的各项要求和步骤。
一、Matlab中的数组运算1. 数组的定义与创建在Matlab中,可以通过直接赋值或者使用特定函数来创建数组。
例如,我们可以直接定义一个一维数组:matlaba = [1, 2, 3, 4, 5];或者使用`ones`, `zeros`, `linspace`, `rand`等函数创建特定类型的数组:matlabb = ones(1, 5); 创建全为1的一维数组c = linspace(0, 10, 5); 创建从0到10均匀分布的5个数的一维数组d = rand(1, 5); 创建包含5个0-1之间随机数的一维数组2. 数组的索引和切片在Matlab中,可以使用索引来访问和修改数组元素。
索引从1开始,例如:matlaba = [1, 2, 3, 4, 5];a(3) 返回数组a的第三个元素,即3a(3) = 6; 修改数组a的第三个元素为6同时,Matlab还支持数组的切片操作,通过冒号(:)可以获取数组的一部分:matlaba(2:4) 返回数组a的第二个到第四个元素,即[2, 3, 4]3. 数组运算Matlab支持多种数组运算,包括算术运算、逻辑运算、比较运算等。
- 算术运算:加(+)、减(-)、乘(*)、除(/)、乘方(^)等。
这些运算符既可以用于数组间的运算,也可以用于数组和标量间的运算。
matlaba = [1, 2, 3];b = [4, 5, 6];c = a + b; c = [5, 7, 9]d = a * 2; d = [2, 4, 6]- 逻辑运算:与(&)、或()、非(~)等。
MATLAB的矩阵和数组的运算
武夷学院实验报告课程名称:实用统计软件项目名称:MATLAB的矩阵和数组的运算姓名:专业:班级:学号:同组成员:无一、实验准备1:(一)、实验环境软件准:计算机、MATLAB软件、实验教材(二)、实验所需知识点准备:实验原理:数组运算侧重数值之间的运算,在进行加、减时是数组中对应位置上数值进行加减,这与矩阵运算一致。
数组乘与矩阵乘意义完全不同。
矩阵乘遵循左侧矩阵的第一行与右侧矩阵第一列对应相乘然后相加,得到新矩阵里第一项,与此类推得到之后的项。
数组乘指对应位置的数值相乘。
特殊矩阵的产生通常有特定的函数指令,而这些指令通常是英文。
因此在运用时要牢记英文含义。
1.矩阵与数组的输入.对于较小较简单的矩阵,从键盘上直接输入矩阵是最常用的数值矩阵创建方法.用这种方法输入矩阵时注意以下三点:(1)整个输入矩阵以方括号“[ ]”为其首尾;(2)矩阵的元素必须以逗号“,”或空格分隔;(3)矩阵的行与行之间必须用分号“;”或回车键隔离.2.常用矩阵的生成. Matlab为方便编程和运算,提供了一些常用矩阵的生成指令:eye(n) 单位矩阵全1矩阵零矩阵eye(m,标准型矩阵ones(m,全1矩阵zeros(m,零矩阵eye(size(A)) 与A同型的标准型矩阵ones(size(A)) 与A同型的全1矩阵zeros(size(A)) 与A同型的零矩阵3.矩阵元素的标识.矩阵的元素、子矩阵可以通过标量、向量、冒号的标识来援引和赋值.(1)矩阵元素的标识方式A(ni,nj). ni,nj都是标量.若它们不是整数,则在1注:1、实验准备部分包括实验环境准备和实验所需知识点准备。
2、若是单人单组实验,同组成员填无。
式中会自动圆整到最临近整数.ni指定元素的行位置,nj指定元素的列位置.(2)子矩阵的序号向量标识方式A(v,w).4.矩阵运算和数组运算.矩阵运算的指令和意义如下:A' 矩阵A的共轭转置矩阵,当A是实矩阵时,A' 是A的转置矩阵.s-B B-s 标量和矩阵相减(Matlab约定的特殊运算,含意同上).A+B 两个同型矩阵A与B相加.s*A 数与矩阵A相乘A-B 两个同型矩阵A与B相减.A*B 矩阵A与矩阵B相乘,要求A的列数等于B的行数.s+B 标量和矩阵相加(Matlab约定的特殊运算,等于s加B的每一个分量)元行位置,nj指定元素的列位置.(2)子矩阵的序号向量标识方式A(v,w).4.矩阵运算和数组运算.矩阵运算的指令和意义如下:A' 矩阵A的共轭转置矩阵,当A是实矩阵时,A' 是A的转置矩阵.s-B B-s 标量和矩阵相减(Matlab约定的特殊运算,含意同上).A+B 两个同型矩阵A与B相加.s*A 数与矩阵A相乘A-B 两个同型矩阵A与B相减.A*B 矩阵A与矩阵B相乘,要求A的列数等于B的行数.s+B 标量和矩阵相加(Matlab约定的特殊运算,等于s加B的每一个分量)二、实验过程记录2:(一)、实验目的:1、学会矩阵和数组运算的基本规律;2、会进行编程运算来检验结果。
matlabmatlab 数组运算和矩阵运算的各个要求 -回复
matlabmatlab 数组运算和矩阵运算的各个要求-回复数组运算和矩阵运算是Matlab 中非常重要的概念。
本文将分别介绍数组运算和矩阵运算,并详细介绍它们的各个要求。
一、数组运算要求1. 数组维度相等:在进行数组运算时,要求参与运算的数组维度必须相等。
如果参与运算的数组维度不相等,那么Matlab 将无法进行运算并将抛出错误信息。
例如,假设有两个数组A 和B,如果想要对它们进行相加操作,那么A 和B 的维度必须完全相同。
2. 数组大小一致:在进行数组运算时,要求参与运算的数组大小必须一致。
数组大小指的是数组中每个维度的元素个数。
例如,假设有两个数组C 和D,如果想要对它们进行相乘操作,那么C 和D 的大小必须一致。
3. 数组类型兼容:在进行数组运算时,要求参与运算的数组类型必须兼容。
数组的类型包括数值型、字符型、逻辑型等。
例如,假设有一个数值型数组E 和一个字符型数组F,如果想要对它们进行相加操作,那么E 和F 的类型不兼容,将无法进行相加。
4. 数组运算符合运算规则:在进行数组运算时,要求所使用的运算符符合运算规则。
例如,加法运算要求两个数组进行对应元素相加,而乘法运算要求两个数组进行对应元素相乘。
例如,对于数组G 和H,如果想要对它们进行相加操作,那么G 和H 的大小和维度必须相同,并且元素相加后的结果将分别填充到相应位置上。
二、矩阵运算要求1. 矩阵维度兼容:在进行矩阵运算时,要求参与运算的矩阵维度必须兼容。
矩阵维度兼容指的是两个矩阵的列数和行数必须满足一定的条件。
例如,假设有两个矩阵M 和N,如果想要对它们进行矩阵乘法操作,那么M 的列数必须等于N 的行数。
2. 矩阵大小一致:在进行矩阵运算时,要求参与运算的矩阵大小必须一致。
矩阵大小指的是矩阵中每个维度的元素个数。
例如,假设有两个矩阵P 和Q,如果想要对它们进行矩阵加法操作,那么P 和Q 的大小必须完全一致。
3. 矩阵类型兼容:在进行矩阵运算时,要求参与运算的矩阵类型必须兼容。
MATLAB的矩阵和数组ppt课件
精品ppt
12
A=magic(n) ; 生成n×n 的魔方矩阵
A=diag(B); 若B为矩阵,取其对角线构成 向量;若B为向量,以此构成矩阵。
>>a=magic(3)
>>s=diag(a)
a=
s=
816
8
357
5
492
2
注意:1、 matlab 严格区分大小写字母!
2、 matlab 函数名必须小写!
A=zeros(size(B)) 生成与矩阵B大小相同的全0矩 阵
例: >> A=zeros(3,4)
A=
0000
0000
0000
ones 的用法与zeros相同。
精品ppt
10
A=randn(n)
A=randn(m,n)
A=eye(n)
A=eye(m,n) 阵为单位阵
生成 n×n 的随机矩阵 生成m×n的随机矩阵 生成 n×n 的单位矩阵 生成 m×n的矩阵,子矩
精品ppt
21
(2)逻辑矩阵方式
l1=logical([1 0 1])
%给出逻辑向量l1
l2=logical([1 1 0])
%给出逻辑向量l2
a(l1,l2)
%取出1、3行且1、2列的元素
ans = 12 56
精品ppt
22
4、矩阵的删除
删除操作就是简单地将其赋值为空矩阵(用[]表示)
a(:,3)=[] a=
精品ppt
11
例: >> randn(3)
>> eye(3,4)
ans =
ans =
-0.4326 0.2877 1.1892
matlabmatlab 数组运算和矩阵运算的各个要求 -回复
matlabmatlab 数组运算和矩阵运算的各个要求-回复MATLAB是一种强大的数值计算和科学编程环境,其数组运算和矩阵运算功能极为丰富。
在本文中,我们将详细介绍MATLAB中数组运算和矩阵运算的各个要求。
数组运算是指对MATLAB中的数组进行元素级别的操作,可以分为基本的数学运算、逻辑运算、关系运算和元素级别的函数运算等。
而矩阵运算则是基于线性代数的运算,包括矩阵的乘法、转置、求逆等。
在进行数组运算和矩阵运算时,我们需要满足一些要求和约束。
下面我们将详细介绍这些要求。
1. 数组和矩阵的尺寸匹配在进行数组和矩阵运算时,必须确保参与运算的数组和矩阵的尺寸匹配。
对于相同维度的数组,尺寸必须完全相同。
而对于矩阵,需要满足矩阵乘法的要求,即左边矩阵的列数必须等于右边矩阵的行数。
2. 数组和矩阵的类型相同在进行数组和矩阵运算时,需要确保参与运算的数组和矩阵类型相同。
不同类型的数据在进行运算时可能会导致类型转换或错误的结果。
3. 运算的复杂度在进行数组和矩阵运算时,需要考虑运算的复杂度。
对于大规模的数组和矩阵运算,应选择合适的算法和方法,以减少计算时间和存储空间的消耗。
4. 数组和矩阵的索引和切片在进行数组和矩阵运算时,可以使用索引和切片对数组和矩阵的特定元素进行访问和操作。
索引从1开始,可以使用冒号运算符(:)进行切片操作。
5. 避免循环运算在MATLAB中,循环运算的效率相对较低,特别是在大规模数据处理时循环的时间开销会很大。
可以通过向量化运算来替代循环运算,以提高计算效率。
6. 逐元素运算和矩阵运算的区别在进行数组和矩阵运算时,需要明确运算类型。
逐元素运算是指对数组中的每个元素进行独立的运算。
而矩阵运算是基于线性代数的运算,包括矩阵的乘法、转置、求逆等。
在选择运算方式时,需要根据需求和数据类型进行选择。
总结起来,MATLAB中的数组运算和矩阵运算有一些要求和约束,包括数组和矩阵的尺寸匹配,类型相同,运算的复杂度,索引和切片的使用,避免循环运算,以及逐元素运算和矩阵运算的区别等。
MATLAB矩阵运算1
zeros(m,n) 产生全部元素为0的m*n矩阵 ones(m,n) 产生全部元素为1的m*n矩阵 [] 产生空矩阵
magic(n)
产生n阶方阵,各行各列及对角线元素和相等
rand(m,n) 元素服从0到1之间均匀分布的随机m*n矩阵 diag(a) 以向量a作为对角线元素生成对角矩阵
二、矩阵的输入
演示
>> 1:10 %增量为1 ans = 1 2 3 4 5 6 7 8 9 10 >> 100:-7:50 ans = 100 93 86 79 72 65 58 51 >> 0:pi/4:pi ans = 0 0.7854 1.5708 2.3562 3.1416 >> 0:sin(1):5 ans = 0 0.8415 1.6829 2.5244 3.3659 4.2074
>> A(1:2,1:2)=[1 2;3 4] A=
>> A=[5 6;7 8] A=
1 3
2 4
1 1
5 7
6 8
一、矩阵元素的处理方法
>> A=[1 2 3;4 5 6;7 8 9] A= 1 4 7 2 5 8 3 6 9 >> B=A(2:-1:1,1:3) B= 4 1
5 2
6 3
>> C=A(end:-1:1,:) C= 7 4 1 8 5 2 9 6 3
>> A(:,4:5)=[] A= 1 4 7 2 5 8 3 6 9
一、矩阵元素的处理方法
>> A=[1 2 3;4 5 6]; D=[7 8 9];
>> A(1,2)=10 A=
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MATLAB中最基本的数据对象就是数组或矩阵,标量可看作是1*1 的 矩阵,向量可看作是l*n或n*l的矩阵.一维数组是向量,二维数组便是 矩 阵,还有三维甚至更高维的数组。标量运算是数学的基础,然而, 当需要对多个 数执行同样的运算时,采用数组或矩阵运算将非常简洁 和方便. 1.4.1 创建矩阵 1.直接定义 例子 键入:
3.一维数组的操作 例子 键入: x=[0.1*pi.2*pi.3*pi.4*pi.5*pi.6*pi.7*pi.8*pi.9*pi pi]
y=sin(x) 输出:
y=
Columns 1 through 7 0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11 0.8090 0.5878 0.3090 0.0000
输出: ans= 0.5878 0.3090 0 3:-1:1表示从3开始减1计数,到1为止.又如
键入: x(2:2:7)
输出: ans= 0.3142 0.9425 1.5708 2:2:7表示从2开始加2计数,到7为止.再如
键人: y([8 2 9 1])
输出: ans= 0.8090 0.3090 0.5878 0 这里是按照数组[8 2 9 1]提供的次序来提取y数组中的元素
输出: B= 456 789
键人: C=A(1:2,[1 3]) % A的第l,2行,第1,3 列
输出: C= 13 46 还有A(1:2:3,3:-1:1)想想将输出什么? 将几个矩阵接在一起称为拼接,左右拼接行数要相同,上下拼接列
数要相同.例如, 键入:
D=[C,zeros(2,1)] 输出:
D= 130 460
l.4.3 矩阵的运算 MATLAB提供了下列矩阵运算
+ 加法; - 减法;’转置运算;* 乘法;^ 乘幂;\ 左除;/ 右除 除除法外其他运算都与线性代数中定义的一样.这里只介绍一下除法
运算. 设A是可逆矩阵 1)AX=B的解是A左除B,即X=A\B,意为用A-1左乘以B. 2)XA=B的解是A右除B,即X=B/A,意为用A-1右乘以B.
矩阵的迹(对角元素之和)
zeros(m,n)
m行n列的零矩阵
ones(m,n)
m行n列的全1矩阵
eye(n)
n阶单位矩阵
rand(m,n)
m行n列的均匀分布随机数矩
阵
randn(m,n)
m行n列的正态分布随机数矩
阵
做:利用帮助了解函数max,min,sum,mean,sort,length,
矩阵函数
键入: E=[D ; eye(2),ones(2,l)]
输出: E= 130 460 101 01l
提示: A(:) 逐列提取A中的所有元素作为一个列向量. A(I) 把A看作列向量则:X提取其中第i个元素. A(r,c) 提取A中,由索引向量r定义的行,和由索引向量c定义的列所构 成的A的子数组. A(r,:) 提取A中,由索引向量r定义的行,和全部列所构成的A的子数 组. A(:,c) 提取A中,由全部行,和由索引向量c定义的列所构成的A的子数 组. 1.4.2 数组运算
A=[1 2 3;4 5 6] 输出:
A= 123 456
这里A为一个2行3列的数组或矩阵.空格或逗号用于分隔某一行的 元素,分号表示开始新的一行. 键入:
A(2,3)=0 %将第2行,第3列的元素置为0. 输出:
A= 123 450
2.一维数组的简单构造 前面我们通过键人矩阵或数组中的每个元素来输人一个矩阵或数 组,当数组中的元素有成百上千时,怎么办呢?对于一维数组有两种简 单的输人格式。 例如, X=0:0.1:1 %从0到l,增量为0.1. X=linspace(0,pi,11) %11 个从 0到pi的等间隔数, 在MATLAB中这两种创建数组的方式是最常见的. 上述数组创建形式所得到的数组的元素之间是线性分隔的特殊情况,当 需要对数分隔的数组时,MATLAB提供了函数logspace. 格式:x=logspace(first,last,n) 创建从10的first次方开始,到10的last次方结束,有n个元素的对数分
1.标量一数组运算 标量与数组的加、减、乘、除和点乘方(.^)是对数组的每个元素进 行运算,得到同样大小的数组. 例子 键入:
a=l:5;3*a-5 输出:
ans=-2 1 4 7 10 键入:
a.^2 输出:
ans=1 4 9 16 25 2.数组-数组运算 当两个数组具有相同大小时,加、减、点乘(.*),点除(./).和点乘 方运算(.^)是按元素对元素方式进行的.例如, 键入: g=[1 2 3;5 6 7;8 9 10]; h= [1 1 1;2 2 2;3 3 3];
MATLAB中的常用数学函数有 三角函数:正弦sin(x),双曲正弦sinh(x),反正弦asin(x),反双曲 正弦asinh(x),余弦cos(x),正切tan(x),余切cot(x),正割sec(x),余割 csc(x)等. 指数函数:exp(x),自然对数log10(x),以 2为底的对数log2(x),平 方根sqrt(x)等. 整值函数:朝零方向取整fix(x),朝- 方向取整floor(x),朝+ 方 向取整ceil(x),四舍五人到最接近的整数round(x),符号函数sign (x)等. 其他数学函数:绝对值或复数的幅值abs(x)等 2.数组特征及矩阵操作函数 size(A) 返回一个二元素向量,第一个元素为A的行数,第二 个元素为A的列数 size(A,1) 返回 A的行数 siZE(A,2) 返回 A的列数 length(A) 返回max(size(A)) flipud(A) 矩阵作上下翻转 fliplr(A) 矩阵作左右翻转 diag(A) 提取A的对角元素,返回列向量 diag(v) 以向量v作对角元素创建对角矩阵 最大值 max,最小值min,求和sum,求平均值mean,按升序排列 sort等函数,只有当它们作用于向量时才有意义.它们也可作用于矩 阵,此时产生一个行向量,行向量的每个元素是函数作用于矩阵相应列 向量的结果. 例子 键人:
ir= 145
-2.8000 9.5000
738
3.5000 26
5.4000
7.0000
7.3000
3.矩阵函数
d=eig(A),[v,d]=eig(A ) 特征值与特征向量
det(A)
行列式计算
inv(A)
矩阵的逆
orth(A)
正交化。
poly(A)
Hale Waihona Puke 特征多项式rank(A)
矩阵的秩
trace(A)
注意: 1)当 A为方阵,p>1为整数时,A^p表示 A自乘 p次;
2)当 A和P均为矩阵时,不能计算A^P. 1.4.4 函数 1.常用的数学函数 单变量数学函数的自变量可以是数组,此时,输出的是各元素的函数值 构成的同规格数组. 例子 输人:
a=[1 2 3;4 5 6];sin(a) 输出:
ans = 0.8415 0.9093 0.1411 -0.7568 -0.9589 -0.2794
4.矩阵的剪裁与拼接
从一个矩阵中取出若干行(列)构成新矩阵称为剪裁,冒号“:”是 非常重要的剪裁工具。
例子 键入:
A=[1 2 3;4 5 6;7 8 9]; A(3,:) %A的第3行 输出:
ans= 789
键入: A(:,l) % A的第 1列
输出: ans= 1 4 7
键入: B=A(2:3:,) %A的第2,3行
g.*h 输出:
ans= 123 10 12 14 24 27 30
提示: 设 a=[a1 a2 a3],b=[b1 b2 b3],c=标量 标量加法 a+c=[a1+c a2+c a3+c]; 标量乘法 a*c=[a1*c a2*c a3*c]; 数组加法 a+b=[a1+b1 a2+b2 a3+b3]; 数组乘法 a.*b=[a1*b1 a2*b2 a3*b3]; 数组右除 a./b=[a1/b1 a2/b2 a3/b3]; 数组左除 a.\b=[b1/a1 b2/a2 b3/a3]; 数组求幂 a.^c=[a1^c a2^c a3^c]; c.^a=c^a1 c^a2 c^a3]; a.^b=[a1^b1 a2^b2 a3^b3];
d= 135101
上述所创建的数组都是行向量,如何创建列向量呢?可使用转置算 子(’) 把行向量变成列向量.如 键入:
a=1:4;%表示从1到4,增量为1的行向量 b=a’ %表示向量的转置 输出: b=
1 2 3 4 有两种转置的符号: l)当数组是复数时,(’)产生的是复数共轭转置; 2) (.’)只对数组转置,但不进行共轭.
在 MATLAB中,数组元素用下标访问,如 y(2)是y的第2个元素. 例如, 键入:
y(3) %表示y的第3个元素 输出:
ans= 0.5878
为了同时访问一块元素,MATLAB用冒号来表示. 键入:
x(1:5) 输出:
ans= 0 0.3124 0.6283 0.9425 1.2566
键人: y(3:-1:1)
read,size的功能和用法.
隔行向量x. 有时所需的数组不具有易于描述的线性或对数分隔关系,这时使用数组 编址和表达式结合的功能可避免每次一个地输人数组元素. 例子
键入: a=1:5; b=1:2:9;c=[b a] 输出:
C= 1357812345
创建的数组c,由b中元素和a中元素构成.又如, 键入:
d=[a(1:2:5)1 0 1] 输出:
a=[-4.5,5,9,7,-2.8,3.5,9.5,5.4,7.3]; min(a),[m,im]=min(a),[M,iM]=max(a),[ra,ir]=sort(a) 输出: ans=