3.1 矩阵特征值和奇异值
3.1.1 行列式、逆和秩
- det(A) 求方阵A的行列式 rank(A) 求A的秩 inv(A) 求A的逆矩阵 pinv(A) 求A的伪逆
3.1.2 特征值和特征向量的求取
- E=eig(A):用于求A的全部特征值,构成向量E
- [V,D]=eig(A):用于求A的全部特征值,构成对角矩阵D,并求A的特征向量构成V的列向量
3.2 概率和统计
3.2.1 基本分析函数
-
sum函数:用于求矩阵列矩阵元素或向量的和
B=sum(A):若A为向量,则返回所有元素的和;如A为矩阵,则返回其他各列所有元素和
B=sum(A,dim):返回A中第dim维的所有元素和 -
cumsum函数:用于求矩阵或向量的累积和
B=cumsum(A):若输入参数A为一个向量,则返回该向量所有元素累积和,若A为矩阵,则返回该矩阵各列元素的累计和,即返回一个行向量
B=cumsum(A,dim) A为矩阵,若dim=1,则表示在列方向上求累计和;若dim=2,则表示在行方向上求累计和
cumsum是累计和,结果中含有每一步的运算结果,sum给出的则是最终求和的结果 -
prod函数:用于求矩阵元素的积
B=prod(A):若A为向量,则返回所有所元素的积;若A为矩阵,则返回各列所有元素积
B=prod(A,dim):返回A中第dim维所有元素的积 -
sort函数:用于对矩阵元素按升序或降序进行排列
B=sort(A):对A进行默认升序排序,若A为矩阵,则对各列进行排序
B=sort(A,dim):对矩阵A中的第dim维进行升序排序
B=sort(…,mode) 按照指定升序或降序进行排序。mode可以是ascend或者descend
[B,IX]=sort(A,…) 对A进行排序,并返回排序后个元素的下标值 -
max函数和min函数:返回向量或矩阵的最大或最小元素
C=max(A):A若为向量则返回该向量中所有元素的最大值,若为矩阵则返回一个行向量
C=max(A,B):比较A,B中对应元素的大小,返回一个A、B中较大元素组成的矩阵或向量
C=max(A,[],dim):返回A中第dim维的最大值
[C,I]=max(…):返回向量或矩阵中的最大值及其下标 -
其他函数
mean函数用于求平均值 median函数用于求中值 std函数用于求标准差
var函数用于求方差 cov函数用于求协方差矩阵 corrcoef函数用于计算矩阵相关系数
3.3 数值求导与积分
3.3.1 导数与梯度
-
导数
Y=diff(X):求X相邻行元素之间的一阶差分
Y=diff(X,n):求X相邻行元素之间的n阶差分 -
梯度
FX=gradient(F):返回F的一维数值梯度,F是一个向量
[FX,FY]=gradient(F):返回二维数值梯度的x和y部分,F是一个矩阵
3.3.2 一元函数的数值积分
-
quad函数:采用自适应Simpson方法计算积分,特点是精度高,较为常用
q=quad(fun,a,b):计算函数fun在a到b区间内的数值积分
q=quad(fun,a,b,tol):用指定的绝对误差tol代替默认误差 -
quadl函数:采用自适应Lobatto方法计算积分,特点是精度较高,最为常用
q=quadl(fun,a,b):计算函数fun在a到b区间内的数值积分
q=quadl(fun,a,b,tol):用指定的绝对误差tol代替默认误差 -
trapz函数:使用梯形法进行积分,特点是速度快精度差
-
cumtrapz函数:用于求累积的梯形数值的积分
3.3.3 二重积分的数值计算
- q=dblquad(fun,xmin,xmax,ymin,ymax)
3.4 插值
3.4.1 一维数据插值
- 一维函数插值常用函数yi=interp1(x,y,xi,method) y为函数值矢量,x为自变量取值范围,x与y的长度必须相同,xi为插值点的向量或者数组,method为插值方法选项。
- 临近点插值 method=nearest (速度最快但平滑性最差)
- 线性插值 method=linear:在两个数据点之间连接直线,计算给定的插值点在直线上的值作为插值结果(占用内存和运算时间较临近点插值大/长,其结果是连续的,但顶点处斜率会改变)
- 三次样条插值 method=spline:通过数据点拟合出三次样条曲线,计算过给定的插值点在曲线上的值作为插值的结果(运算时间最长,其插值数据和导数都是连续的,平滑性最好)
- 立方插值 method=pchip或cubic:通过分段立方Hermite插值方法计算插值结果
3.4.2 二维数据插值
- 主要运用于图形图像处理和三维曲线拟合等领域。一般语法为:zi=interp2(x,y,z,xi,yi,method),interp1的四种插值方法也可以在interp2中使用
3.4.3 样条插值
- 基本思想:设有一组已知的数据点,目标是找一组拟合多项式,在拟合过程中,对于此数据组的每个相邻样点对,用三次多项式去拟合样点之间的曲线,为保证拟合的唯一性,对该三次多项式在样点处的一阶、二阶导数加以约束。这样除被研究区间端点外,所有内样点处可保证样条有连续的一阶、二阶导数。
- yy=spline(x,y,xx):根据样点数据 (x,y),求xx所对应的三次样条插值
- pp=spline(x,y):从样点数据 (x,y)获得逐段多项式样条函数数据pp
3.5 曲线拟合
3.5.1 曲线拟合的实现
- 可以用polyfit函数来求最小二乘拟合多项式的系数,另外可以用polyval函数按所得的多项式计算指定值
- [p,s]=polyfit(x,y,m) x,y为测量而得的原始数据,为向量,m为欲拟合的多项式的次数
- polyfit将根据原始数据x、y得到一个m次拟合多项式P(x)的系数,该多项式能在最小二乘意义下最优地近似函数f(x),返回的结果中p为m次拟合多项式的系数,而s中的数据则是拟合多项式有关误差估计的结构数组
3.6 Fourier分析
-
函数fft和ifft
Y=fft(X):如果X是向量,则采用快速傅里叶算法作X的离散傅里叶变换;若X为矩阵,则计算矩阵每一列的傅里叶变换
Y=fft(X,n):用参数n限制X的长度,若X的长度小于n,则用0补足,若X的长度大于n,则去掉长出的部分 -
fft2和ifft2
用于对数据作二维快速傅里叶变换和傅里叶反变换。数据的二维傅里叶变换相当于,先对X的列做一维傅里叶变换,再对变换结果的行做一维傅里叶变换 -
fftshift和ifftshift
用于把傅里叶变换结果Y(频域数据)中的直流分量(频率为0处的值)移到中间位置;
若Y为向量,则交换Y的左右半边
以上内容全部来自《MATLAB从入门到精通》
来源:CSDN
作者:Malcohol
链接:https://blog.csdn.net/Malcohol/article/details/103938011