向量:
生成向量:
①直接输入:A = [1,2,3,4,5,6] → 生成向量A,A是一维向量,具有六个分量
②利用冒号表达式:x = x0:step:xn →x0为首元素值,xn为为元素值限,step为每个元素与前一个元素的等差值
③线性等分向量函数:y = linspace(x1,x2,n) → 生成n维向量,y(1) = x1,y(2) = x2
向量的运算:
①加减:+-
②数乘:*
③点乘:dot()函数 dot(a,b) → a点乘b
④叉乘:cross()函数 cross(a,b) → a叉乘b
⑤混合积:dot(a,cross(b,c))
矩阵:
生成矩阵:
①直接输入:A = [1,2,3;4,5,6;7,8,9]
②函数生成:
函数 | 概要 |
zeros | 生成零矩阵 |
ones | 生成全一矩阵 |
eye | 生成单位矩阵 |
rand | 生成0-1间均匀分布的随机矩阵 |
randn | 生成均值为0,方差为1的标准正态分布矩阵 |
magic | 生成魔方矩阵(行、列、对角线上元素的和相等) |
特殊矩阵生成函数命令格式
例:zeros
zeros(n) → 生成n阶方阵全零阵
zeros(m,n) zeros([m,n]) → 生成m×n全零阵
zeros(size(X)) → 生成与矩阵X大小相同的全零阵
③运算生成:
R = [1,2,3;4,5,6] N = [4,5,6;7,8,9]
C = R + i*N
矩阵的运算:
①加减:+-
②乘/数乘:*
③乘方:^
④除法(左除\和右除/):x=a\b是方程a*x=b的解,x=b/a是方程x*a=b的解
⑤求逆:inv() 伪逆pinv()
⑥求迹:trace()
⑦求秩:rank()
范数、条件数...
特殊操作:
①对角线元素的抽取:diag()
用法:X = diag(v,k) %以向量v的元素作为矩阵X的第k条对角线元素,k=0时作主对角线元素
k>0时v为上方第k条对角线;k<0时v为下方第k条对角线
X = diag(v) %以向量v的元素作为主对角线元素,其余元素为0
v = diag(X,k) %抽取矩阵X的第k条对角线元素构成向量v
v = diag(X) %抽取主对角线元素构成向量v
②上/下三角阵的抽取:tril()取下三角部分 triu()取下三角部分
用法:L = tril(X) %抽取X的主对角线的下三角部分构成矩阵L
L = tril(X,k) %抽取X的第k条对角线的下三角部分,k=0时为主对角线;k>0时v为上方 第k条对角线;k<0时v为下方第k条对角线,构成矩阵L
③变维:
用法:reshape(A,m,n) → 在矩阵总元素保持不变的情况下将矩阵A转换成m×n矩阵
B(:):A(:) → 将A的元素用B的维度排列
例:
④变向:
旋转:rot90()
用法:B = rot90(A,k) %将矩阵A逆时针方向旋转k×90°
翻转:fliplr() 左右翻转;flipud() 上下翻转;flipdim() 按照指定维数翻转
用法:flidim(A,dim) %将矩阵A按dim维翻转
线性方程组求唯一解:
①AX=b → X=A\b
②函数rref()
C = [A,B] %A为系数矩阵,B为常数列,C为增广矩阵
R = rref(C) %将增广矩阵C变为行最简形式
齐次线性方程组求解:
null()求基础解系
format rat %结果用有理分式显示
z = null(A,'r') %z的列向量是AX=0的基础解系
非齐次线性方程组求通解:
%A为系数矩阵,b为常数列,B为增广矩阵,n为未知数个数
n =
R_A = rank(A)
R_B = rank(B)
format rat
if R_A == R_B&R_A == n
X = A\b
%系数矩阵和增广矩阵的秩相同→方程组有解;秩等于未知数个数→有效方程个数等于未知数个数→解唯一
if R_A == R_B&R_A < n
X = A\b %求方程组的一组特解
C = null(A,'r') %求AX=0的基础解系
%系数矩阵和增广矩阵的秩相同→方程组有解;秩小于未知数个数→有效方程个数小于未知数个数→解无穷
else X = 'equition no solve' %其余情况下方程组无解
end
求矩阵的特征值和特征向量:
eig()函数
d = eig(A) %求矩阵A的特征值并赋值给变量d
[V,D] = eig(A) %求矩阵A的特征值对角阵D和特征向量V
例:
特征值-1对应的特征向量为(-0.7071,0,-0.7071);特征值2对应的特征向量为(-0.2425,0,-0.9701)和(0.3015,0.9045,0.3015)