matlab学习笔记②

向量:

生成向量:

①直接输入: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的维度排列

例:

matlab学习笔记②

④变向:

旋转: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

例:

matlab学习笔记②

特征值-1对应的特征向量为(-0.7071,0,-0.7071);特征值2对应的特征向量为(-0.2425,0,-0.9701)和(0.3015,0.9045,0.3015) 

上一篇:Matlab机械臂综合仿真平台,包含运动学、动力学和控制


下一篇:Matlab数值数据