matlab学习笔记(4)—— 数据分析与多项式计算
1 数据统计分析
1.1 求最大值和最小值
- y=max(x):若x是向量则返回x中的最大值存入y;若x是矩阵则返回每一列中的最大值
- [y,k]=max(x):若x是向量则返回x中的最大值存入y,最大值元素的序号存入k;若x是矩阵则返回每一列中的最大值并且k中记录每一个最大值的行号
- max(x,[],dim):若dim取1则按列取值,若dim取2则按行取值
1.2 求平均值和中值
用法和求最值类似
- mean(x)函数:求平均值
- median(x)函数:求中值
由于平均值容易受到极端数据的影响,所以有时中值更能反应数据间的水平
1.3 求和与求积
用法和求最值类似
- sum(x)函数:求和
- prod(x)函数:求积
1.4 累加和累乘绩
用法和求最值类似
- cumsum(x)函数:累加和
- cumprod(x)函数:累乘积
1.5 标准差和相关系数
用法和求最值类似
- std(x)函数:标准差,用于计算数据偏离平均数的距离的平均值
- corrcoef(x)函数:相关系数,用于反映两组数据序列之间的相互关系
1.6 排序
使用sort函数:
- sort(x):对向量x按升序排列
- [M,N] = sort(x,dim,mode):若dim取1则按列取值,若dim取2则按行取值;若mode取"ascend"则按升序,若mode取"descend"则按降序;M为排序后的矩阵,N为M中元素在原来矩阵中的位置
2 多项式计算
2.1 表示
n次多项式用一个长度为n+1的行向量表示
注意的点:
- 多项式系数向量的顺序从高到低
- 向量中包含0次项系数,所以长度为n+1
- 如果有的项不存在,系数向量相应的位置用0补足
2.2 四则运算
- 加减运算:相应向量加减即可
- 乘法:调用conv(p1,p2)函数
- 除法:调用[q,r]=deconv(p1,p2)函数 ,由于可能除不尽则q代表p1除以p2的商式,r表示余式
2.3 求导
使用polyder()函数
2.4 求值
- polyval(p,x)函数:代数多项式求值
- polyvalm(p,x)函数:矩阵多项式求值
2.5 求根
使用roots( p) 函数,其中p代表多项式的系数向量
若已知多项式的全部根,则可以实使用poly函数建立对应的多项式
3 数据插值
由于在实际操作中,得到的数据可能是离散的,缺少连续完整的数据,那么就可以通过数据插值,根据有限个点的取值情况,合理估算出附近其他点的取值,从而节约大量的实验和测试资源。
简单说数据插值就是根据已有点的数据的规律计算出其他点的函数值
使用函数y1=interp1(x,y,x1,method) ,根据x,y的值计算函数在x1处的值。其中参数method决定了插值的方法:
- linear:线性插值(默认方法),将与插值点靠近的两个数据点用直线相连,然后在直线上选取对应插值点的数据
- nearest:最近点插值,选择最近样本点的值作为插值数据
- pchip:分段3次埃米尔特插值,曲线光滑且具有保形型
- spline:3次样条插值,进一步提高了曲线光滑性
4 曲线拟合
使用多项式拟合函数 polyfit() 可得到最小二乘拟合多项式系数:
- p=polyfit(x,y,m)
- [p,s]=polyfit(x,y,m)
- [p,s,mu]=polyfit(x,y,m)
根据样本数据x、y产生一个m次多项式p,s表示在采样点误差数据