向量和矩阵感觉还是很重要的部分,概念必须清楚。。
向量
向量定义使用的是方括号,换行用分号;
向量和常数的乘法可以直接用*号
向量的转置使用单引号
向量的加减运算也是可以直接写的,但是要求两个向量的长度、维数一致
如果想要计算向量的元素的平方,需要用到x.^2,必须加一个点
从已存变量创建大向量
列向量的合并:直接用分号连接
行向量合并:用逗号连接
创建等差元素向量
x = [xi : q: xe],其中xi为首元素,xe为末元素,q为差值
但是实际上,xe不一定为末元素
也可以用linspace 命令,linspace(a, b)创建了 a、b 之间含有 100 个等差元素的向量
也可以自定义个数,linspace(a, b, n)
创建出来的都是行向量
logspace(a, b, n)指令,可以创建n个对数值间隔相同的向量。利用这个指令可以创建对数坐标
特征化向量
length命令:返回向量中包含元素的个数。可用于列向量和行向量
max命令:返回向量中元素的最大值
min命令:返回最小值
计算向量的模:
方法一:先点乘自己,然后sum求和,然后开方
方法二:对于存在虚数的向量,需要共轭相乘再开方。复数向量的共轭转置可以直接用单引号。
同时,也可以用conj指令计算共轭,但不转置
abs(a)a为复向量,此时将返回一个同维向量,各个元素等于a的元素的模
向量的点乘和叉乘(数量积和向量积)
dot(a, b)命令:计算向量点乘,此时最好两个向量的格式一样,当然一个是行一个是列也能算出来。
用这个方法可以计算向量的模
cross(A, B)命令:叉乘,需要两个三维向量
但是这个命令一般用的不多,数值计算不太会用到
引用向量元素
利用小括号,比如A(2)是向量A的第二个元素
冒号:表示所有元素
引用部分元素:A(4:6)表示引用第四个到第六个元素,是和A同型的向量
矩阵基本操作
矩阵和向量基本一样,上文的向量可以看成一维矩阵
单引号可以计算转置共轭,如果只需要计算转置,不需要共轭,需要用.’,即点加单引号
乘法:
①.加乘号表示元素直接相乘,不是矩阵乘法,而是向量乘法
②*表示直接相乘,
加法:
如果是常数加矩阵,会默认变成每个元素加那个常数
除法:
元素对应相除:用./表示,两个矩阵必须维数相同
指数:
A.^2表示对应元素平方
总之,只要*/^前面有点.,都表示对应元素相乘相除平方
单位矩阵:
eye(4)表示四维单位矩阵
任意维矩阵:
zeros(m, n)创建 m×n 的矩阵,元素全为0
ones(m,n)创建m×n矩阵,元素全为1
引用矩阵元素
利用小括号可以引用矩阵元素, A(m,n)选出第 m 行 n 列的元素
要引用第 i 列的所有元素,我们输入 A(:,i),冒号表示全部,会输出一个列向量
要选出从第 i 列到第 j 列之间的所有元素,我们输入 A(:,i:j)。如A(:,2:3),表示第二列到第三列的元素
删除某一行:要在 MATLAB 中创建空数组,只需在方括号[]里留空即可。它可以用来删除矩阵的行或列。
A(2,:)=[],就表示删除第二行
矩阵的创建:没太看懂。。。。为什么括号里又有中括号,这里先放一下。
行列式与线性系统的求解
计算行列式,可以用det(a)
解非齐次线性方程组时,可以直接用矩阵除法得到解
Ax=b
则x=A\b可以解出x
但是b/A不可以,不知道为什么,反正试了试就是不可以
实际上,A在分母上,利用b/A和A\b表示左乘和右乘,这里很显然是左乘
所以说使用时要注意矩阵的行列,以及维数
求矩阵的秩
指令:rank(A)表示求秩,(秩的英文就叫rank)
增广矩阵的表示:[A b]直接用列向量并列,中间空格或者逗号。注意b的行数必须和A一致
矩阵求逆
det(A)=0,则表示奇异矩阵,没有逆矩阵
指令inv(A),求逆
欠定情况
方程个数小于未知量的个数,此时解是不唯一的,称为欠定情况。
提到了一个广义逆矩阵,没学过,先放着
只需要知道这种情况下利用原来的除法仍然能得到解,但其中一个分量为0,
简化梯形矩阵
rref(A)函数使用 Gauss-Jordan 消元法产生矩阵 A 降行后的梯形形式
矩阵分解
这里没学过,用来求方程的解的,好像不太能用到。。。
先到这里,知道能做什么就可以,具体指令可以再查