Matlab之矩阵分析基本应用(一)

1、创建 :行向量,列向量,矩阵

% 创建行向量
a1 = [1 2 3 4 5]
a2 = [1,2,3,4,5]
a3 = 1:1:5              % start:step:end 当start>end时,step应为负数 
a4 = linspace(1,5,5)    % linspace(start,end,num),num为一共有多少个元素
% 创建列向量
b1 = [1;2;3]
b2 = [1,2,3]'           % 把行向量转置为列向量
% 创建基础矩阵
c1 =[1,2,3;4,5,6;7,8,9]
c2 = [1 2 3
    4 5 6
    7 8 9]
c3 = [a1,a2,a3]         % 1*15:1行15列
c4 = [a1;a2;a3]         % 3*5:3行5列
c5 = [a1,a2;a3,a4]      % 2*10:2行10列
% 创建特殊矩阵
% (1) ones()函数:产生全为1的矩阵,ones(n):产生n*n维的全1矩阵,ones(m,n):产生m*n维的全1矩阵;
% (2) zeros()函数:产生全为0的矩阵;
% (3) rand()函数:产生在(0,1)区间均匀分布的随机阵;
% (4) eye()函数:产生单位阵;
% (5) randn()函数:产生均值为0,方差为1的标准正态分布随机矩阵。

2、取值:矩阵的取值计数是先列后行

a1(5)                   % ans = 5
c1(4)                   % ans = 2:矩阵c1的第4个数
c1(1,2)                 % ans = 2:矩阵c1的第一行第二列
c1(:,2)                 % ans = [2 5 8]':矩阵c1的第2列
c1(2,:)                 % ans = [3 4 5]:矩阵c1的第2行
c1(1:2,:)               % ans = [1 2 3;4 5 6]:矩阵c1的第一行和第二行
size(c1)                % ans = 3 3       --size:获取数组的行数和列数
length(c5)              % ans = 10        --length:数组长度(即行数或列数中的较大值)
numel(c1)               % ans = 9         --numel:元素总数
sum(c1)                 % ans = 12 15 18  --对每列进行求和

3、基本运算

常见的矩阵运算有算术运算,关系运算,逻辑运算。优先级依次降低。

(1)算术运算

  1. 加(+),减(-),数乘
  2. 乘,点乘(内积)

(1)乘:C = A*B :
条件:矩阵A的行数与矩阵B的列数相同;
矩阵C的行数等于矩阵A的行数,矩阵C的列数等于矩阵B的列数;
矩阵C的第m行n列元素值等于矩阵A的m行元素与矩阵B的n行元素对应值积的和。
注:A B ≠ B A 矩阵不满足交换律
(2)点乘:两矩阵中相同位置的元素进行相乘运算,将积保存在原位置组成新矩阵。
注:matlab中dot只针对行向量,如果求矩阵的内积可考虑sum(dot(A,B))
dot(A, B)与A.*B等价。A B必须同型,相当于对应列的内积

A = [5,6,9;3,6,7]
B = [1,2,3;4,5,6;7,8,9]
C = [2,3,4;3,3,3;4,5,2]
>> A*B
    92   112   132
    76    92   108
>> B*A
错误使用  * 
用于矩阵乘法的维度不正确。请检查并确保第一个矩阵中的列数与第二个矩阵中的行数匹配。要执行按元素相乘,请使用 '.*'。
>> A.*B
矩阵维度必须一致。
>> B.*C
     2     6    12
    12    15    18
    28    40    18
>> C.*B
     2     6    12
    12    15    18
    28    40    18
  1. 除(matlab特有):左除(\)、右除(/)

一般情况下,方程A ∗ X = B 的解是X = A\ B,而方程X ∗ A = B 的解是X = B / A 。
计算左除A\B时,A的行数要与B的行数一致,计算右除A/B时,A的列数要与B的列数一致。
如果A是非奇异的,则可用inv(A)表示A的逆矩阵

A=[1 2 3;5 8 6;3 2 3];
B=[8 6 9;4 3 7;1 2 3];
C1 = A./B                 
D1 = B.*C1
C2 = A.\B

C1 =
    0.1250    0.3333    0.3333
    1.2500    2.6667    0.8571
    3.0000    1.0000    1.0000
D1 =
     1     2     3
     5     8     6
     3     2     3
C2 =
    8.0000    3.0000    3.0000
    0.8000    0.3750    1.1667
    0.3333    1.0000    1.0000
% 计算X*B=A
X = A/B  
X = A*inv(B)
>> A*inv(B)
    0.0000   -0.0000    1.0000
    1.4000   -2.4000    3.4000
    0.4000    0.0000   -0.2000
>> A/B
         0         0    1.0000
    1.4000   -2.4000    3.4000
    0.4000    0.0000   -0.2000
  1. 其他常见计算:

1、矩阵的幂函数:
(1)A.^2表示A的每个元素平方
(2)A^2表示两个A相乘,等价于A*A
2、det(A):求矩阵的行列式
3、inv(A):求矩阵的逆矩阵
4、rank(A):求矩阵的秩(矩阵线性无关的行数与列数称为矩阵的秩)
5、trace(A):求迹矩阵的迹(矩阵的对角线元素之和,也等于矩阵的特征值之和)
6、矩阵或向量的范数:用来度量矩阵或向量在某种意义下的长度.(V可是向量也可以是矩阵)
(1)norm(V)或norm(V,2):计算向量V的2-范数;cond(A)或cond(A,2) 计算矩阵A的2-范数数下的条件数
(2)norm(V,1):计算向量V的1-范数;cond(A,1) 计算矩阵A的1-范数下的条件数;
(3)norm(V,inf):计算向量V的∞-范数;cond(A,inf) 计算矩阵A的 ∞-范数下的条件数
7、矩阵的特征值与特征向量:
(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的特征值和特征向量
8、 B = det(A)inv(A):求矩阵A的伴随矩阵B
9、B = A
P:求矩阵A到B的过渡矩阵P
10、y = inv(B) * x :可求向量x在组基B下的坐标y

A=[1,2,3;4,5,6;2,3,4];

>>A.^2
     1     4     9
    16    25    36
     4     9    16
>> A^2
    15    21    27
    36    51    66
    22    31    40
>> A*A
    15    21    27
    36    51    66
    22    31    40

(2)关系运算

MATLAB提供了6种关系运算符:<(小于)、<=(小于或等于)、>(大于)、>=(大于或等于)、==(等于)、~=(不等于)。关系运算符的运算法则为:

(1) 当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0;
(2) 当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成;
(3)当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。

(3)逻辑运算

MATLAB提供了3种逻辑运算符:&(与)、|(或)和~(非)。 逻辑运算的运算法则为:

(1) 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示;
(2) 设参与逻辑运算的是两个标量a和b,那么,a&b a,b全为非零时,运算结果为1,否则为0。 a|b a,b中只要有一个非零,运算结果为1。~a 当a是零时,运算结果为1;当a非零时,运算结果为0。
(3) 若参与逻辑运算的是两个同维矩阵,那么运算将对矩阵相同位置上的元素按标量规则逐个进行。最终运算结果是一个与原矩阵同维的矩阵,其元素由1或0组成;
(4) 若参与逻辑运算的一个是标量,一个是矩阵,那么运算将在标量与矩阵中的每个元素之间按标量规则逐个进行。最终运算结果是一个与矩阵同维的矩阵,其元素由1或0组成;
(5) 逻辑非是单目运算符,也服从矩阵运算规则;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值