matlab矩阵定义、矩阵元素引用、矩阵操作 | 您所在的位置:网站首页 › matlab矩阵求和前n项 › matlab矩阵定义、矩阵元素引用、矩阵操作 |
矩阵定义
直接输入法
A=[1 2 3;4 5 6;7 8 9]
矩阵用方括号 “[ ]” 括起 矩阵同一行中的元素之间用 空格 或 逗号 分隔 矩阵行与行之间用 分号 分开 直接输入法中,分号可以用 回车 代替 A=[1 2 3 4 5 6 7 8 9;1 2 3] 由向量生成基本矩阵函数如下: (1) ones()函数:产生全为1的矩阵,ones(n):产生nn维的全1矩阵,ones(m,n):产生mn维的全1矩阵; (2) zeros()函数:产生全为0的矩阵; (3) rand()函数:产生在(0,1)区间均匀分布的随机阵; (4) eye()函数:产生单位阵; (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。 (6)tril()下三角矩阵 (7)triu()上三角矩阵 (8)diag(X):若 X 是矩阵,则 diag(X) 为 X 的主对角线向量 若 X 是向量,diag(X) 产生以 X 为主对角线的对角矩阵 diag(X,k)是提取第k条对角线的元素 使用格式A=zeros(N) 产生NN的全零矩阵 A=zeros(M,N) 产生MN的全零矩阵 A=zeros(M,N,P,…)产生MNP*…的全零矩阵 A=zeros(siza(b)) 产生和矩阵B维数相同的全零矩阵 矩阵元素可以是任何形式的表达 x=[-1.3,sqrt(3),(1+2+3)*4/5] 矩阵元素的单独赋值 x(5)=abs(x(1))Matlab自动将向量 x 的长度扩展到 5, 并将未赋值部分置零。 大矩阵可以把小矩阵作为其元素 A=[A;11 12 13] 矩阵元素的引用单个元素的引用 x(i)向量x中的第i个元素 A(i,j)矩阵A中的第i行,第j列元素 多个元素的引用:冒号的特殊用法 产生一个由等差序列组成的向量; a 是首项,b 是公差,c 确定最后一项;若 b=1,则 b 可以省略。 ![]() ![]() ![]() 把矩阵A的行和列互相交换所产生的矩阵称为A的转置矩阵,这一过程称为矩阵的转置。 矩阵 A 的共轭转置A * 定义为:将矩阵A 的行与列对换,且在将行与列对换时还要将每个元素换成该元素的共轭。 ’共轭转置.’转置,矩阵元素不能取共轭点与单引号之间不能有空格 对于一个方阵A,如果存在一个与之同阶方针B,使得AB=BA=E,此时矩阵B为A的逆矩阵,A也是B的逆矩阵,使用函数inv(A) 矩阵的伪逆如果矩阵A不是一个方阵,或者A是一个非满秩的方阵时,矩阵A没有逆矩阵,但可以找到一个与A的转置矩阵A’同型的矩阵B,使得:ABA=A,BAB=B 此时称矩阵B为矩阵A的伪逆,也称为广义逆矩阵。在MATLAB中,求一个矩阵伪逆的函数是pinv(A)。 改变矩阵的形状 reshape(A,m,n)将矩阵元素按 列方向 进行重组,重组后得到的新矩阵的元素个数必须与原矩阵元素个数相等! 把一个方阵看作一个行列式,并对其按行列式的规则求值,这个值就称为矩阵所对应的行列式的值。在MATLAB中,求方阵A所对应的行列式的值的函数是det(A)。 矩阵的秩与迹矩阵的秩 矩阵线性无关的行数与列数称为矩阵的秩。在MATLAB中,求矩阵秩的函数是rank(A)。 矩阵的迹矩阵的迹等于矩阵的对角线元素之和,也等于矩阵的特征值之和。在MATLAB中,求矩阵的迹的函数是trace(A)。 向量和矩阵的范数矩阵或向量的范数用来度量矩阵或向量在某种意义下的长度。范数有多种方法定义,其定义不同,范数值也就不同。 (1) 向量的3种常用范数及其计算函数 在MATLAB中,求向量范数的函数为: a、norm(V)或norm(V,2):计算向量V的2-范数; b、norm(V,1):计算向量V的1-范数; c、norm(V,inf):计算向量V的∞-范数。 (2) 矩阵的范数及其计算函数 MATLAB提供了求3种矩阵范数的函数,其函数调用格式与求向量的范数的函数完全相同。 (3) 矩阵的条件数 在MATLAB中,计算矩阵A的3种条件数的函数是: a、cond(A,1) 计算A的1-范数下的条件数; b、cond(A)或cond(A,2) 计算A的2-范数数下的条件数; c、cond(A,inf) 计算A的 ∞-范数下的条件数。 矩阵的特征值与特征向量在MATLAB中,计算矩阵A的特征值和特征向量的函数是eig(A),常用的调用格式有3种: (1) E=eig(A):求矩阵A的全部特征值,构成向量E。 (2) [V,D]=eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。 (3) [V,D]=eig(A,’nobalance’):与第2种格式类似,但第2种格式中先对A作相似变换后求矩阵A的特征值和特征向量,而格式3直接求矩阵A的特征值和特征向量。 矩阵的基本运算 矩阵的加减对应分量进行运算,要求参与加减运算的矩阵具有 相同的维数 A 是方阵,p 是正整数 A^p 表示 A 的 p 次幂,即 p 个 A 相乘。 若 A 是方阵,p 不是正整数 A^p 的计算涉及到 A 的特征值分解,即若 A = VDV-1 则 Ap=V*(D.p)/V 矩阵的 Kronecker 乘积数组运算:对应元素进行运算 数组运算包括:点乘、点除、点幂 相应的数组运算符为: “.* ” , “./ ” , “.\ ” 和“ .^ ” 点与算术运算符之间不能有空格! std2(A):求矩阵所有元素的均方差 矩阵与数的运算加减:矩阵的每个元素都与数作加减运算 数乘:矩阵的每个元素都与数作乘法运算 矩阵除以一个数:每个元素都除以这个数 点幂: 底为矩阵,指数为标量 底为标量,指数为矩阵 稀疏矩阵MATLAB的矩阵有两种存储方式:完全存储方式和稀疏存储方式。 完全存储方式完全存储方式是将矩阵的全部元素按列存储。以前讲到的矩阵的存储方式都是按这个方式存储的,此存储方式对稀疏矩阵也适用。 稀疏存储方式稀疏存储方式仅存储矩阵所有的非零元素的值及其位置,即行号和列号。在MATLAB中,稀疏存储方式也是按列存储的。 注意,在讲稀疏矩阵时,有两个不同的概念,一是指矩阵的0元素较多,该矩阵是一个具有稀疏特征的矩阵,二是指采用稀疏方式存储的矩阵。 sparse(S)将矩阵S转化为稀疏存储方式。当矩阵S已经是稀疏存储方式时,则函数调用相当于ans=S。 例如 sparse函数还有其他一些调用格式:sparse(m,n):生成一个m×n的所有元素都是0的稀疏矩阵。 sparse(u,v,s,m,n):u,v,s是3个等长的向量 s是要建立的稀疏矩阵的非0元素 u(i)、v(i)分别是s(i)的行和列标 m,n分别是矩阵的行数和列数。当m,n未被指定时,该函数建立一个max(u)行、max(v)列并以s为稀疏元素的稀疏矩阵 还有一些和稀疏矩阵操作有关的函数。例如[u,v,s]=find(A):返回矩阵A中非0元素及下标。产生的u,v,s可作为sparse(u,v,s)的参数。full(A):返回和稀疏存储矩阵A对应的完全存储方式矩阵。 单位矩阵只有对角线元素为1,其他元素都是0,是一种具有稀疏特征的矩阵。 函数eye产生一个完全存储方式的单位矩阵。 函数speye(m,n)返回一个m×n的稀疏存储方式的单位矩阵。若m=n可简写为speye(n)。 spones(S):把矩阵S的非零元素值改为1。 sprand:产生非零元素为均匀分布的随机数的稀疏矩阵 。 稀疏存储矩阵只是矩阵的存储方式不同,它的运算规则与普通矩阵是一样的。所以,在运算过程中,稀疏存储矩阵可以直接参与运算。当参与运算的对象不全是稀疏存储矩阵时,所得结果一般是完全存储形式。 |
CopyRight 2018-2019 实验室设备网 版权所有 |