目录
前置基础:
Matlab也属于一种编程语言,主要用于数学工程学的计算。
Matlab是根据矩阵的方式进行所有计算的
要求学生有线性代数以及编程基础才可以进行学习
生成矩阵:
直接生成:
要求:
用逗号分隔元素
用分号分割行
中括号括起来整个矩阵
举例:
a=[1,2,3;4,5,6;7,8,9]
执行结果:
冒号一维矩阵:
要求:
用冒号分割各个参数
第一个元素是开始元素
最后一个元素是结束元素
中间元素为步长(当步长为 1 可以省略)
举例:
b=1:1:10
b=1:10
//两者等价
执行结果:
函数生成:
要求:
不同的函数对应不同的参数
不同函数的不同参数均有不同意义
举例:
c=linspace(0,10,5)//(开始,结束,元素个数);等差生成一维矩阵,省略个数则生成100个;
e=eye(4)//(维数);生成对应维数的单位矩阵
z=zeros(1,4)//(行数,列数);生成参数大小的矩阵,矩阵元素全为0
o=ones(4,1)//(行数,列数);生成参数大小的矩阵,矩阵元素全为1
r=rand(4)//(维数);生成对应维数的矩阵,矩阵元素均为 0~1 的随机数
rn=randn(4)//(维数);生成对应维数的矩阵,矩阵元素为以 0 为均值的正态分布
执行结果:
矩阵运算:
求矩阵部分对角阵:
要求:
生成主对角线上第 k 条线对应的三角阵
举例:
diag_a=diag(a,1)//生成第 k 条线上的所有元素
tril_a=tril(a,1)//把第 k 条线以上的元素全部清 0
执行结果:
加减乘乘方
要求:
就相当于矩阵运算,符号用正常符号表示
举例:
a+a
a-a
a*a
执行结果:
点运算
要求:
将矩阵中的对应点进行算术运算
举例:
a.*a
a./a
a.\a
a.^a
执行结果:
逆矩阵,特征值特征向量
要求:
当所求矩阵为矩阵时,结果为广义矩阵
当所求矩阵为方阵时,结果为方阵
[v,D] 其中 v 为特征向量,D为特征值对角阵
举例:
pinv(a) //求逆矩阵
[v,D]=eig(a)//求特征
运行结果:
行列式 秩 伴随
要求:
求行列式 ,求秩 ,求伴随矩阵;
举例:
det(a)//求行列式
rank(b)//求秩
compan(b)//求伴随矩阵
运行结果:
矩阵的修改:
部分替换:
要求:
可以替换单个元素
可以替换整行元素
可以替换整列元素
举例:
chg_a=a
chg_a(2,3)=4
chg_a(1,:)=[2,2,2]
chg_a(:,1)=[]
运行结果:
转置:
要求:
对矩阵进行转置
举例:
T_a=a'
运行结果:
指定维数拼接:
要求:
可以进行水平拼接与垂直拼接
一定要保证行列可以对齐
举例:
c1_a=cat(1,a,a)
c2_a=cat(2,a,a)
运行结果:
变维:
要求:
变维前与变维后元素个数相同
举例:
re_a=reshape(a,1,9)
运行结果:
矩阵的信息获取:
矩阵的行列数:
要求:
是矩阵就行,没有明确要求
举例:
[row_a,col_a]=size(a)
[row_b,col_b]=size(b)
运行结果:
行列中最大的:
要求:
求出某矩阵的行列的最大值
Max(row_a,col_a)
举例:
len_a=length(a)
len_b=length(b)
运行结果: