一、MATLAB基础知识

1.matlab矩阵表示

(1)普通矩阵的建立:


case1:直接输入法建立矩阵

将矩阵的元素用中括号括起来,按照矩阵的顺序输入各元素。同一行的各元素之间用逗号或空格分割,不同行之

间的元素用分号分割。

image-20210822222835982.png

case2:利用已有矩阵建立更大矩阵

一个大矩阵可以由建立好的小矩阵拼接而成。
image-20210823090328670.png

case3:利用实部、虚部矩阵构成复数矩阵

image-20210823090734090.png

case4:冒号表达式

格式:e1:e2:e3,(初始值:步长:终止值)

若步长省略则默认为1,二维矩阵若省略初始和终止值则表示矩阵的一整行 or 列

image-20210823091657112.png
image-20210823091908718.png

case5:linspace函数产生行向量

格式:linspace(a, b, n),(a:第一个元素, b:最后一个元素, n:元素总数)

若元素总数n省略,则自动默认产生100个元素

image-20210823092549186.png

(2)单元矩阵的建立:

建立单元矩阵和一般普通矩阵相似,直接输入法建立即可,只是单元矩阵元素用大括号括起来。
image-20210823093455302.pngimage-20210823093510110.png

2.matlab矩阵元素的引用

(1)通过下标引用矩阵元素:

image-20210823094057211.png

(2)通过序号引用矩阵元素:

在matlab中,矩阵的元素是按列存储的即首先存储第一列元素、第二列…一直到最后一列。

矩阵元素的序号就是矩阵元素在内存中的排列顺序。

image-20210823094439770.png

(3)矩阵元素下标与序号的相互转换:

通过观察发现一个矩阵 Ai,j 中的元素的下标ij与元素对应的序号index的关系为:index = (j - 1) * (m + 1);

matlab中也提供了sub2indind2sub函数实现下标与序号之间的转换:

case1:矩阵下标转序号sub2ind

sub2ind函数将矩阵中指定元素的行、列下标转换成存储的序号,调用格式为:D = sub2ind(S, I, J);

D:矩阵元素的序号(转换结果)

S:行数和列数组成的向量[i, j]

I:转换矩阵元素的行下标i

J:转换矩阵元素的列下标j

image-20210823100039684.png

注意:如果sub2ind函数中参数IJ也为矩阵(此时必须保证I、J行列数相同,与D),表示要将矩阵中的多个元素下标转换为序号

image-20210823100739507.png

case2:矩阵序号转下标ind2sub

ind2sub函数将矩阵中指定元素存储的序号转换成对应的行、列下标,调用格式为:[I, J] = ind2sub(S, D);

I:序号对应矩阵元素的行下标i

J:序号对应矩阵元素的列下标j

S:需要转换矩阵的行数和列数组成的向量[i, j]

D:元素存储的序号

image-20210823211458207.png

注意:如果ind2sub函数中参数D为数组,则表示要将矩阵中的多个元素序号转换为下标

image-20210823211724107.png

(4)利用冒号表达式引用矩阵元素:

利用冒号表达式引用矩阵元素如下:

矩阵引用 含义
A(i, :) 引用矩阵A中的第i
行全部元素
A(:, j) 引用矩阵A中的第j
列全部元素
A(i:i + m, k:k + m) 引用矩阵A中在第i
~i + m
行,k
~k + m
列中的所有元素
A(i:i + m, :) 引用矩阵A中在第i
~i + m
行中的所有元素

(5)矩阵的其他操作:

case1:删除矩阵的元素:

image-20210823213100968.png

case2:强行改变矩阵形状:

image-20210823213400263.png

这里的矩阵变换再次验证了,矩阵的元素是按列存储的

case3:特殊操作:A(:)列堆叠

image-20210823213636305.png

3.matlab矩阵基本运算

(1)算术运算:

基本算术运算包括:加+、减-、乘*、右除/、左除\、乘方^,注意:matlab算术运算是在矩阵意义下进行的,满足矩阵运算规律

另注:乘方运算要求被运算矩阵为方阵,乘方数为标量

(2)点运算:

点运算包括:点乘方.*、点右除./、点左除.\、点乘方.^,点运算与基本运算不同在于点运算作用于两矩阵对应元素(故要求矩阵同型)
image-20210823215137850.png

二、MATLAB矩阵处理

1.特殊矩阵:

(1)通用的特殊矩阵:image-20210823221137330.png

image-20210823221151671.png

(2)专门学科的特殊矩阵:

特殊矩阵 生成代码
魔方阵 magic(n)
范德蒙矩阵 vander(V)
希尔伯特矩阵 hilb(n)
伴随矩阵 compan(p)
帕斯卡矩阵 pascal(n)

2.矩阵变换:

(1)对角阵:image-20210823222727479.png

image-20210823222751797.png

(2)三角阵:image-20210823222947590.png

image-20210823223034492.png

(3)矩阵的转置:image-20210823223102712.png

复数矩阵的转置与共轭转置结果是不同的,实数矩阵的转置与共轭转置结果是相同的

(4)矩阵的旋转:image-20210823223327960.png

(5)矩阵的翻转:image-20210823223430440.png

(6)矩阵求逆:image-20210823223553744.png

image-20210823223639050.png

3.矩阵求值:

(1)矩阵的行列式值:image-20210823223935471.png

(2)矩阵的秩:image-20210823224217491.png

(3)矩阵的迹:image-20210823224151674.png

(4)矩阵的范数:image-20210823224359889.png

(5)矩阵的条件数:image-20210823224508350.png

4.矩阵的特征值与特征向量:

设A是n阶方阵,如果存在常数 λ 和 n维非零列向量 x ,使得等式 A·x = λ·x 成立,

则称λ为方阵A的特征值,x 是对应特征值λ 的特征向量。
image-20210824183827255.png

5.稀疏矩阵:

稀疏矩阵存储方式为,只存储矩阵中非零元素的值及其位置,即行号和列号。

注意:采用稀疏储存方式时,矩阵元素的存储顺序并没有改变,也是按列顺序进行存储

image-20210824184926965.png
image-20210824185100543.png
image-20210824185312794.png

*描述的稀疏矩阵转化为稀疏存储矩阵:

  • step1:稀疏矩阵的描述方法

image-20210824185854899.png

  • step2:稀疏矩阵存储的转化:

image-20210824185949533.png
image-20210824190144965.png
image-20210824190310406.png
image-20210824190844057.png