Matlab 第二讲:向量与矩阵的运算

合集下载

MATLAB可视化方法和技巧向量和矩阵的计算

MATLAB可视化方法和技巧向量和矩阵的计算

向量和矩阵的计算和图示之一{范例6_1}矩阵加减法通过魔方矩阵和帕斯卡矩阵说明矩阵的加减法。

[操作]先形成魔方矩阵 EDU>> M=magic(3) M =8 1 6 3 5 7 4 9 2 矩阵与标量10的加法为 EDU>> M+10 ans =18 11 16 13 15 1714 19 12即:矩阵与标量的加法等于矩阵每个元素与标量的和。

矩阵与标量10的减法为 EDU>> M-10 ans =-2 -9 -4 -7 -5 -3-6 -1 -8即:矩阵与标量的减法等于矩阵每个元素与标量的差。

对于矩阵111212122212..................n n ij m m mn a a a a a a A a a a a ⎛⎫ ⎪ ⎪= ⎪ ⎪⎝⎭(6.1) 简记为A = {a ij }或A = {a }mn 。

矩阵与常数c 的加法和减法为111212122212..................n n ij m m mn a c a ca c a c a c a c A c a c a c a c a c ±±±⎛⎫ ⎪±±± ⎪±= ⎪± ⎪±±±⎝⎭(6.2) 简记为A + c = {a ij + c }。

再形成一个帕斯卡矩阵 EDU>> P=pascal(3) P =1 1 1 12 31 3 6 M 和P 矩阵之和为 EDU>> M+P ans =9 2 7 4 7 10 5 12 8在求两矩阵之和时,两个矩阵的大小要相同,其和等于两上矩阵对应元素之和。

M 和P 矩阵之差为 EDU>> M-P ans =7 0 5 2 3 4 3 6 -4对于同相大小的矩阵111212122212..................n n ij m m mn b b b b b b B b b b b ⎛⎫⎪⎪=⎪⎪⎝⎭(6.3)矩阵A 与B 的加法和减法为111211112121222212221212....................................n n n n ij ij m m mn m m mn a a a b b b a a a b b b C A B a b a a a b b b ⎛⎫⎛⎫⎪⎪⎪ ⎪=±=± ⎪ ⎪⎪⎪⎝⎭⎝⎭111112121121212222221122..................n n n n ij ijm m m m mn mn a b a b a b a b a b a b a b a b a b a b ±±±⎛⎫⎪±±± ⎪=⎪±⎪±±±⎝⎭(6.4)简记为C = A ± B = {a ij ± b ij },C 的矩阵元可表示为c ij = a ij ± b ij 。

Matlab 第二讲:向量与矩阵的运算

Matlab 第二讲:向量与矩阵的运算

存储指定的变量
save
文件名
变量名列表
变量名列表中各变量之间用空格分隔
例:>> save mydata A x z
15
变量的读取
将数据文件中的变量载入当前工作空间
load mydata load mydata A x 读取数据文件中的所有变量 从数据文件中提取指定变量
清除当前工作空间中的变量
10
常用数学函数
linspace(a,b,n) % 生成 a 到 b,n 个数的等差数列 logspace(a,b,n) % 生成 10a 到 10b,n 个数的等比数列 max(x) min(x) mean(x) sum(x) sort(x) det(A) inv(A) eig(A) rank(A) % % % % % % % % % 求 向量 x 中的最大值 求最小值 求平均值 求和 排序 行列式 求逆 特征值 求矩阵的秩
数学实验
向量与矩阵运算
1
本讲主要内容
数组运算
函数的使用 变量的输入输出
2
矩阵的数组运算
数组运算:对应元素进行运算


数组运算包括:点乘、点除、点幂
相应的四个数组运算符为: .* ./ .\ .^
点与算术运算符之间不能有空格! 例: >> A = [1,2,3; 4,5,6]; B = [3,2,1; 6,5,4];
底为矩阵,指数为标量 底为标量,指数为矩阵
7
数与数组的点幂
例:x=[1 2 3]; y=[4 5 6];
x.^y =[1^4,2^5,3^6]=[1,32,729] x.^2 =[1^2,2^2,3^2]=[1,4,9] 2 .^x = ?

Matlab讲座二_矩阵及运算

Matlab讲座二_矩阵及运算

其中, a=[1 2 3; 3 -5 4; 7 8 9] x=[x1;x2;x3] b=[2;0;2]
-18/17 2/17 16/17
MATLAB 基本语法
5. 矩阵的超越函数
在Matlab中解释 exp(A) 和 sqrt(A) 时曾涉及到级数运 算,此运算定义在A的单个元素上。 Matlab可以计算矩阵 的超越函数,如矩阵指数、矩阵对数等。 一个超越函数可以作为矩阵函数来解释,例如将“m” 加在函数名的后边而成 expm(A) 和 sqrtm(A),当Matlab运 行时,有下列三种函数定义: expm 矩阵指数 logm 矩阵对数 sqrtm 矩阵开方 所列各项可以加在多种m文件中或使用funm。详细用 法请利用 help 功能参见帮助文件。 例如,help expm
1.按顺序进行如下的操作: (1)产生一个5阶魔术方阵A(A=magic(5));并计 算 A' 与 A-1 (即 inv(A)); (2)求A的特征值; (3)计算A的各列的总和与平均值; (4)计算A的各行的总和与平均值; (5)若b=[1 2 3 4 5] ',求方程组 Ax=b的解; (6)验证你的结论的正确性。
MATLAB 基本语法
7. 关于矩阵的几个函数
(8)混合积
混合积由以上两函数实现: 例 计算向量a=(1, 2, 3)、b=(4, 5, 6)和c=(-3, 6, -3) 的混合积 a · b×c ) ( 解: >> a=[1 2 3]; b=[4 5 6]; c=[-3 6 -3]; >> x=dot(a, cross(b, c)) x= 54
MATLAB 基本语法
4. 矩阵除法
在Matlab中有两种矩阵除法符号: “\” 即 左除 和 “/” 即 右除。 如果A矩阵是非奇异方阵,则A\B 是A的逆矩阵乘B, 即 inv(A)*B; 而 B/A 是 B 乘A的逆矩阵,即 B*inv(A)。 具体计算时可不用逆矩阵而直接计算。 通常: x=A\B 就是 A*x=B 的解; x=B/A 就是 x*A=B 的解。

MATLAB中的矩阵运算与计算技巧分享

MATLAB中的矩阵运算与计算技巧分享

MATLAB中的矩阵运算与计算技巧分享概述:MATLAB是一款强大的数值计算软件,广泛应用于科学研究、工程设计等领域。

在MATLAB中,矩阵运算是非常重要的一部分内容。

本文旨在分享一些MATLAB中的矩阵运算和计算技巧,帮助读者更好地应用MATLAB进行数值计算和数据处理。

一、基本的矩阵运算1. 矩阵的创建与存储在MATLAB中,可以使用不同的方法创建矩阵,如直接赋值、生成全零矩阵、单位矩阵等。

创建矩阵后,可以使用变量名进行存储,方便后续的计算和操作。

2. 矩阵的运算MATLAB提供了丰富的矩阵运算函数,如加法、减法、乘法、除法等。

例如,使用"+"进行两个矩阵的相加,使用"*"进行矩阵相乘,使用"\ "进行矩阵的求解等等。

3. 矩阵的转置与共轭转置通过单引号操作符可以实现矩阵的转置操作,即将矩阵的行和列进行交换。

对于复数矩阵,可以使用"'"进行共轭转置。

二、常用的矩阵运算函数1. 矩阵求逆与伪逆MATLAB提供了inv函数来求矩阵的逆,pinv函数来求矩阵的伪逆。

对于非奇异矩阵,可以使用inv函数实现精确的逆求解;对于奇异矩阵,则可以使用pinv函数求得伪逆。

2. 矩阵的特征值与特征向量可以使用eig函数来求解矩阵的特征值和特征向量。

特征值表示矩阵的特征属性,特征向量则表示对应特征值的方向信息。

3. 矩阵的奇异值分解奇异值分解(Singular Value Decomposition,简称SVD)是一种重要的矩阵分解方法。

在MATLAB中,可以使用svd函数进行奇异值分解。

通过SVD,我们可以将矩阵分解为三个矩阵的乘积,便于后续的处理和分析。

三、高效计算的技巧与技巧1. 矩阵的切片与索引通过切片和索引操作,可以选取矩阵的部分元素进行操作,或者获取特定的行或列。

这在大规模数据处理和计算中非常有用。

2. 向量化计算向量化计算是一种更高效的计算方式,在MATLAB中,可以通过矩阵运算和函数的向量化实现。

MATLAB中的矩阵与向量运算

MATLAB中的矩阵与向量运算

之欧侯瑞魂创作4.1 数组运算和矩阵运算从外观形状和数据结构来看,二维数组和数学中的矩阵没有区别.但是,矩阵作为一种变换或映射算符的体现,矩阵运算有着明确而严格的数学规则.而数组运算是MATLAB软件所定义的规则,其目的是为了数据管理方面,操纵简单,指令形式自然和执行计算有效.所以,在使用MATLAB时,特别要明确搞清数组运算和矩阵运算的区别.表4.1.1列出了两种运算指令形式的实质内涵的异同.4.1.1 数组运算和矩阵运算指令形式和实质内涵数组运算矩阵运算指令含义指令含义A.'非共轭转置A'共轭转置A=s把标量s赋给数组A的每个元素s+B把标量s分别与数组B的每个元素相加sB, Bs标量s分别与数组B的元素之差s.*A标量s分别与数组A的元素之积s*A标量s分别与矩阵A的元素之积s./B, B.\s标量s分别被数组B的元素除s*inv(B)矩阵B的逆乘标量sA.^n数组A的每个元素的n次方A^nA为方阵时,矩阵A的n次方A+B数组对应元素的相加A+B矩阵相加AB数组对应元素的相减AB矩阵相减A.*B数组对应元素的相乘A*B内维相同矩阵的乘积A./BA的元素被B的对应元素除A/BA右除BB.\A一定与上相同B\AA左除B(一般与右除分歧)exp(A)以e为底,分别以A的元素为指数,求幂expm(A)A的矩阵指数函数log(A)对A的各元素求对数logm(A)A的矩阵对数函数sqrt(A)对A的积各元素求平方根sqrtm(A)A的矩阵平方函数从上面可以看到,数组运算的运算如:乘,除,乘方,转置,要加"点".所以,我们要特别注意在求"乘,除,乘方,三角和指数函数"时,两种运算有着根本的区别.另外,在执行数组与数组运算时,介入运算的数组必须同维,运算所得的结果数组也是总与原数组同维.4.2 数组的基本运算在MATLAB中,数组运算是针对多个数执行同样的计算而运用的.MATLAB以一种非常直观的方式来处理数组.4.2.1 点转置和共轭转置. ' ——点转置.非共轭转置,相当于conj(A').>> a=1:5;>> b=a. 'b =12345>> c=b. 'c =1 2 3 4 5这标明对行向量的两次转置运算便得到原来的行向量.' ——共轭转置.对向量进行转置运算并对每个元素取其共轭.如: >> d=a+i*ad =Columns 1 through 31.0000 + 1.0000i2.0000 + 2.0000i3.0000 + 3.0000i Columns 4 through 54.0000 + 4.0000i5.0000 + 5.0000i>> e=d'e =1.0000 1.0000i2.0000 2.0000i3.0000 3.0000i4.0000 4.0000i5.0000 5.0000i4.2.2 纯量 (标量) 和数组的四则运算纯量和数组之间可以进行简单数学运算.如:加,减,乘,除及其混合运行.>> g=[1 2 3 45 6 7 89 10 11 12]>> g=g2g =1 0 1 23 4 5 67 8 9 10>> 2*g1ans =3 1 1 35 7 9 1113 15 17 194.2.3 数组间的四则运算在MATLAB中,数组间进行四则运算时,介入运算的数组必须具有相同的维数,加,减,乘,除运算是按元素与元素的方式进行的.其中,数组间的加,减运算与矩阵的加,减运算要同,运算符为:"+","".但是,数组间的乘,除运算与矩阵间的乘,除运算完全分歧,运算符号也有不同,数组间的乘,除运算符为:".*","./"或".\".1. 数组按元素相加,减>> g=[1 2 3 45 6 7 89 10 11 12]>> h=[1 1 1 1; 2 2 2 2; 3 3 3 3] >> g+h % 按元素相加ans =2 3 4 57 8 9 1012 13 14 15>> ansh % 按元素相减ans =1 2 3 45 6 7 89 10 11 12>> 2*gh % 混合运算ans =1 3 5 78 10 12 1415 17 19 212. 按元素乘>> g.*hans =10 12 14 1627 30 33 363. 按元素除数组间的除法运算符有两个,即左除:"./"和右除:".\",它们之间的关系是:a./b=b.\a>> g./hans =1.00002.00003.00004.00002.50003.00004.1000 4.00003.0000 3.3333 3.66674.0000>> h.\gans =1.00002.00003.00004.00002.50003.00004.1000 4.00003.0000 3.3333 3.66674.00004.2.4 幂运算在MATLAB中,数组的幂运算的运算为:".^",暗示每一个元素进行幂运算.>> g.^2 % 数组g每个元素的平方ans =25 36 49 6481 100 121 144>> g.^(1) % 数组g的每个元素的倒数ans =1.0000 0.5000 0.3333 0.25000.2000 0.1667 0.1429 0.12500.1111 0.1000 0.0909 0.0833>> 2.^g % 以g的每个元素为指数对2进行乘方运算ans =2 4 8 1632 64 128 256512 1024 2048 4096>> g.^h % 以h的每个元素为指数对g中相应元素进行乘方运算ans =1 2 3 425 36 49 64729 1000 1331 1728>> g.^(h1)ans =1 1 1 15 6 7 881 100 121 1444.2.5 数组的指数,对数和开方运算在MATLAB中,所谓数组的运算实质是是数组内部每个元素的运算,因此,数组的指数,对数和开方运算与标量的运算规则完全是一样的,运算符函数分别为:exp( ),log( ),sqrt( )等.>> a=[1 3 4;2 6 5;3 2 4];>> c=exp(a)c =2.7183 20.0855 54.59827.3891 403.4288 148.413220.0855 7.3891 54.5982>>数组的对数,开方运算与数组的指数运算,其方式完全一样,这里不详述.4.3 向量运算对于一行或一列的矩阵,为向量,MATLAB有专门的函数来进行向量点积,叉积和混合积的运算.4.3.1 向量的点积运算在高等数学中,我们知道,两向量的点积指两个向量在其中一个向量方向上的投影的乘积,通经常使用来定义向量的长度.在MATLAB 中,向量的点积用函数"dot"来实现,其调用格式如下:C=dot(A,B) ——返回向量A与B的点积,结果存放于C中.C=dot(A,B, DIM) ——返回向量A与B在维数为DIM的点积,结果存放于C中.>> A=[2 4 5 3 1];>> B=[3 8 10 12 13];>> C=dot(A,B)C =137>> C=dot(A,B,4)C =6 32 50 36 134.3.2 向量的叉积运算在高等数学中,我们知道,两向量的叉积返回的是与两个向量组成的平面垂直的向量.在MATLAB中,向量的点积用函数"cross"来实现,其调用格式如下:C=cross(A,B) ——返回向量A与B的叉积,即:,结果存放于C中. C=cross(A,B, DIM) ——返回向量A与B在维数为DIM的叉积,结果存放于C中.>> A=[2 4 5];>> B=[3 8 10];>> C=cross(A,B)C =0 5 44.3.3 向量的混合运算>> D=dot(A, cross(B,C))D =41上例标明,首先进行的是向量B与C的叉积运算,然后再把叉积运算的结果与向量A进行点积运算.4.4 矩阵的基本运算如果说MATLAB的最大特点是强大的矩阵运算功能,此话毫不为过.事实上,MATLAB中所有的计算都是以矩阵为基本单元进行的.MATLAB对矩阵的运算功能最全面,也是最为强大的.矩阵在形式上与构造方面是等同于前面所述的数组的,当其数学意义却是完全分歧的.矩阵的基本运算包含矩阵的四则运算,矩阵与标时的运算,矩阵的幂运算,指数运算,对数运算,开方运算及以矩阵的逆运算,行列式运算等.4.4.1 矩阵的四则运算矩阵的四则运算与前面介绍的数组的四则运算基底细同.但也有一些不同.1. 矩阵的加减矩阵的加,减与数组的加,减是完全相同的,运算时要求两矩阵的大小完全相同.>> a=[1 2; 3 5; 2 6];>> b=[2 4; 1 8; 9 0];>> c=a+bc =3 64 1311 62. 矩阵的相乘对于矩阵的乘法,从线性代数中,我们知道,要求进行相乘的两矩阵有相同的公共维.如:>> a=[1 2; 3 5; 2 6];>> b=[2 4 1; 8 9 0];>> c=a*bc =18 22 146 57 352 62 2设A矩阵为一个阶的矩阵,则要求与之相乘的B矩阵必须是一个阶,得到矩阵是阶的.即,只有当第一个矩阵 (左矩阵) 的列数等于第二个矩阵 (右矩阵) 的行数时,两个矩阵的乘积才有意义.3. 矩阵的除法对于矩阵的除法有两个运算符号,分别为左除符号"\"和右除符号"/".矩阵的右除运算速度要慢一点,而左除运算可以防止奇异矩阵的影响.对于方程,若此方程为超定的方程,则使用除法可以自动找到使的平方最小化的解.若此方程为不定方程,则使用除法运算符至少求得的解至多有rank(A) (矩阵A的秩)个非零元素,而且求得的解是这种类型的解中范数最小的一个.>> a=[21 34 20; 5 78 20; 21 14 17; 34 31 38];>> b=[10 20 30 40]';>> x=b\ax =0.7667 1.1867 0.8767上面方程是超定方程.要注意的:结果矩阵x是列向量形式.如果, >> a=[21 34 20 5; 78 20 21 14; 17 34 31 38];>> b=[10 20 30]';>> x=b\ax =1.6286 1.2571 1.1071 1.0500上面的方程为不定方程.4. 矩阵与标量间的四则运算矩阵与标量的四则运算和数组与标量间的四则运算完全相同,即矩阵中的每个元素与标量进行加,减,乘,除四则运算.需要说明的是,当进行除法运算时,标量只能做除数.5. 矩阵的幂运算矩阵的幂运算与标量的幂运算分歧.用符号"^",它不是对矩阵的每个元素进行幂运算,而是与矩阵的某种分解有关.>> b=[21 34 20; 78 20 21; 17 34 31];>> c=b^2c =3433 2074 17543555 3766 26313536 23126. 矩阵的指数,对数运算与开方运算矩阵的指数运算,对数运算与开方运算与数组相应的运算是分歧的.它其实不是对矩阵中的单个元素的运算,而是对整个矩阵的运算.这些运算函数如下: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.92000.7919 1.3065 1.56130.4807 0.7919 0.9475>> c=logm(a)c =0.5002 + 2.4406i 0.5960 0.6800i 0.7881 1.2493i 0.4148 + 0.4498i 1.4660 0.1253i 1.0108 0.2302i 0.5780 1.6143i 0.4148 + 0.4498i 1.0783 + 0.8263i >> c=sqrtm(a)c =0.6190 + 0.8121i 0.8128 0.2263i 1.1623 0.4157i0.3347 + 0.1497i 2.3022 0.0417i 1.1475 0.0766i1.0271 0.5372i 0.3347 + 0.1497i 1.6461 + 0.2750i 7. 矩阵的转置,逆运算与行列式运算矩阵的转置的运算符为"'".求逆用运算函数:inv( ).而用函数:det( )则可求的矩阵行列式的大小.>> a=[1 2 0; 2 5 1; 4 10 1];>> c=a'c =1 2 42 5 100 1 1>> b=inv(a)b =5 2 22 1 10 2 1>> d=det(a)d =14.5 矩阵的特殊运算矩阵的特殊运算包含矩阵特征值运算,条件数运算,奇异值运算,范数运算,秩运算,正交化运算,迹运算,伪逆运算等,这些运算,MATLAB都可以非常方便地给出.4.5.1 矩阵的特征值运算在线性代数中,计算矩阵的特征值过程相当复杂.而在MATLAB中,矩阵特征值运算只需用函数"eig( )"或"eigs( )"计算即可得到.其使用格式如下.E=eig(X) ——生成由矩阵X的特征值所组成的一个列向量; [V,D]=eig(X) ——生成两个矩阵V和D,其中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素构成的对角矩阵.eigs( )函数使用迭代法求解矩阵的特征值和特征向量.D=eigs(X) ——生成由矩阵X的特征值所组成的一个列向量.X 必定是方阵,最好是大型稀疏矩阵;[V,D]=eigs(X) ——生成两个矩阵V和D,其中V是以矩阵X的特征向量作为列向量组成的矩阵,D是由矩阵X的特征值作为主对角线元素构成的对角矩阵.>> a=[1 2 0; 2 5 1; 4 10 1];[b,c]=eig(a)b =0.2440 0.9107 0.44720.3333 0.3333 0.00000.9107 0.2440 0.8944c =3.7321 0 00 0.2679 00 0 1.00004.5.2 矩阵 (向量) 的范数运算为了反映了矩阵 (向量) 某些特性,线性代数中引入了范数的概念,它分为2范数,1范数,无穷范数和Frobenius范数等.在MATLAB 中,用函数norm( )或normest( ) 计算矩阵 (向量) 的范数.其使用格式如下.norm(X) ——计算矩阵 (向量) X的2范数;norm(X,2) ——同上;norm(X,1) ——计算矩阵 (向量) X的1范数;norm(X,inf) ——计算矩阵 (向量) X的无穷范数;norm(X,'fro') ——计算矩阵 (向量) X的Frobenius范数; normest(X) ——只计算矩阵 (向量) X的2范数;而且是2范数的估计值,适用于计算norm(X)比较费时的情况. >> X=hilb(4)X =1.0000 0.5000 0.3333 0.25000.5000 0.3333 0.2500 0.20000.3333 0.2500 0.2000 0.16670.2500 0.2000 0.1667 0.1429>> norm(4)ans =4>> norm(X)ans =1.5002>> norm(X,2)ans =1.5002>> norm(X,1)ans =2.0833>> norm(X,inf)ans =2.0833>> norm(X,'fro')ans =1.5097>> normest(X)ans =1.50024.5.3 矩阵的条件数运算矩阵的条件数是判断矩阵"病态"程度的一个量值,矩阵A的条件数越大,标明A越"病态",反之,标明A越"良态".如Hilbert矩阵就是一个有名的病态矩阵.cond(X) ——返回矩阵X的2范数的条件数;cond(X, P) ——返回矩阵X的P范数的条件数,其中P为1,2,inf或fro;rcond(X) ——用于计算矩阵条件数的倒数值,当矩阵X为"病态"时,rcond(X)就接近0,X为"良态"时,rcond(X)就接近1. condest(X) ——计算关于矩阵X的1范数的条件数的估计值. >> M=magic(3)M =8 1 63 5 74 9 2>> H=hilb(4)H =1.0000 0.5000 0.3333 0.2500 0.5000 0.3333 0.2500 0.2000 0.3333 0.2500 0.2000 0.1667 0.2500 0.2000 0.1667 0.1429 >> c1=cond(M)c1 =4.3301>> c2=cond(M)c2 =4.3301>> c3=rcond(M)c3 =0.1875>> c4=condest(M)c4 =5.3333>> h1=cond(H)h1 =1.5514e+004>> h2=cond(H,inf)h2 =2.8375e+004>> h3=rcond(H)h3 =3.5242e005>> h4=condest(H)h4 =2.8375e+004从上计算可以看出,魔方矩阵比较"良态",而Hilbert矩阵是"病态"的.4.5.4 矩阵的秩秩是线性代数中的相当重要的概念之一,通常矩阵可以经过初等行列式或列变换,将其转化为行阶梯形矩阵,而行阶梯矩阵所包含非零行的行数是一个定的,这个确定的非零行的行数就是矩阵的秩.矩阵中的秩用函数rank( )来计算.>> T=rand(6)T =0.9501 0.4565 0.9218 0.4103 0.1389 0.01530.2311 0.0185 0.7382 0.8936 0.2028 0.74680.6068 0.8214 0.1763 0.0579 0.1987 0.44510.4860 0.4447 0.4057 0.3529 0.6038 0.93180.8913 0.6154 0.9355 0.8132 0.2722 0.46600.7621 0.7919 0.9169 0.0099 0.1988 0.4186>> r=rank(T)r =6由上计算可知,矩阵T为满秩矩阵. >> T1=[1 1 1; 2 2 3]T1 =1 1 12 2 3>> r=rank(T1)r =2由上计算可知,矩阵T1为行满秩矩阵.。

MATLAB语言:第2章 MATLAB矩阵及运算 (2)

MATLAB语言:第2章 MATLAB矩阵及运算 (2)
as=n(result)%显示这些数字
练习
电子装备结构设计 教育部重点实验室
2.4.3逻辑运算
2. 先决逻辑运算
先决逻辑运算符有:&&(先决与)和||(先决或)。 先决逻辑运算与元素逻辑运算相似,但可以减少逻辑判 断的操作,运行效率高。
注意:先决逻辑运算只能用于标量的运算。
A && B:当A为0时,直接得出逻辑运算结果为0,否则 继续执行&运算
电子装备结构设计 教育部重点实验室
3. 字符串与数值的转换 abs将字符串转换为ASCII码数值 str2num将字符串转换为数值 str2double将元胞字符串数组转换为数值
4. 字符串的其他操作 MATLAB 7. x还可以对字符串进行比较、 查找、运行等操作。
电子装备结构设计 教育部重点实验室
例 使用字符串函数进行运算。
>> str='a+b,c+d,'
str =
a+b,c+d,
>> str1=strrep(str1,',','*2') str1 =
%将,用*2替换
a+b*2
>> a=str1) %执行字符串str1
ans =
9 >> str2=upper(str2) %将字符串转换为大写字母
>> y=sin(t)./cos(t)
y=
0 1.7321 -1.7321 -0.0000 1.7321 -1.7321 -0.0000
程序分析:sin(t)和cos(t)都是行向量,必须使用.*和./计算 行向量中各元素的计算值。

第3章 实验二矩阵与向量运算

第3章 实验二矩阵与向量运算

第3章 实验二矩阵与向量运算实验目的:在MATLAB 里,会对矩阵与向量进行加、减、数乘、求逆及矩阵的特征值运算,以及矩阵的LU 分解。

3.1 矩阵、逆矩阵运算 例3.1 设矩阵A 、B 如下:1221,3415A B -⎡⎤⎡⎤==⎢⎥⎢⎥⎣⎦⎣⎦,分别求出B A +、B A *、A 的逆矩阵,A 矩阵的行列式的值。

在matlab 软件中的命令窗口输入: A=[1 2;3 4]; B=[-2 1;1 5]; A+B 得到: ans =-1 3 4 9A 的逆矩阵由命令inv(A)计算,例如:令A=[1 2;3 4]; 则 C=inv(A) 得到: C =-2.0000 1.0000 1.5000 -0.5000对于任意非奇异的方阵,都可以用命令inv 计算其逆矩阵。

在matlab 里,矩阵乘法用乘法运算符表示,可以通过命令输入:A*B得到:ans =0 11 -2 23在matlab 里,可以通过命令输入:det(A)得到: -2在matlab 里,在矩阵的后面加一个撇号得到该矩阵的转置,例如: F=A ’ 使矩阵F 变为A 的转置。

下面的命令创建一个m ×m 的单位矩阵: s=eye(m)m ×n 的零矩阵用s=zeros(m*n)给出。

m ×n 的元素都是1的矩阵用写为: w=ones(m,n)如果A 是一个矩阵,则zeros(size(A))和ones(size(A))分别得到与A 大小相同的零矩阵和单位矩阵。

命令rand(m,n)创建一个m ×n 的随机矩阵。

命令hilb(m)创建一个Hilbert 矩阵的特殊矩阵。

3.2 矩阵的特征值设A 是一个n ×n 方阵,X 是一个n 维向量,乘积Y=AX 可以看作是n 维空间变换。

如果能够找到一个标量λ,使得存在一个非零向量X ,满足:AX=λX (3.1) 则可以认为线性变换T(X)=AX 将X 映射为λX,此时,称X 是对应于特征值λ的特征向量。

2 matlab矩阵运算

2 matlab矩阵运算
456 789 【例】键入并执行a2=[1:3;4:6;7:9] %结果同上
第二种方法:由多个一维向量构成。使用方括号“[ ]” 操作符 使用规则每个一维向量必须在“[ ]”内键入; 行与行之间须用分号“;” 间隔,也可以在分行处用回 车键间隔; 行内元素用空格或逗号“,”间隔 【例】由向量构成二维数组。 >>a=[1 2 3]; b=[2 3 4]; >>c=[a;b]; >>c1=[a b]; 【例】这种输入方式是否正确a=[[1 2 3];[4 5 6]],将 “;”换成空格符号,有区别吗?
>>a_2(:,[2 3])=ones(2) %双下标方式寻访并修改 a_2 = 1 1 17 10 1 1 30
二维数组可以“单下标”方式或“全下标”方式访问、赋值; “单下标”方式赋值时,等号两边涉及的元素个数必须相等; 全下标”方式赋值时,等号右边数组的大小必须等于原数组中涉
及元素构成的子数组的大小。
三、matlab基本运算
例,计算矩阵的加减乘除 >>A=[1, 1, 1; 1, 2, 3; 1, 3, 6] >>B=[8, 1, 6; 3, 5, 7; 4, 9, 2] >>C=A+B >>D=A-B >>E1=A*B >>E2=A.*B >>F1=A/B >>F2=A./B
数组的运算要注意以下几点: 1. 加减法中,两个数组大小必须相同; 2.乘法(*)中,A矩阵的列数必须等于B矩阵的行数; 3.点乘(.*)或者点除(./)中,两个矩阵的大小必须相同; 4.方阵(行数等于列数)才可以乘方的计算; 5. 有些矩阵没有逆矩阵,即不能有(/)的计算;
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档