第四章 数据处理
4.1 数据插值
4.1.1 一维插值
1、多项式插值
[调用格式] interp1(x , y , xi , method)
X和y是有数据的向量,其长度必须相等;
xi为要插值数据点向量;
method为插值方法(nearest最近点插值 ; linear 线性插值;
cubic 分段三次hermite插值 ; spline
三次样条插值)
(就近插值是指根据缺失记录附近的其他记录的情况对缺失值进行插值,例如在上例中,“张三”的性别出现缺失,此时可以用其邻近的“李四”的性别数据替代“张三”的性别数据,由于“李四”的性别为“女”,所以将“张三”的性别也赋为“女”。).v"}M)sP)Z!X
`n4bWN3Ga
例:求x1=2.55处的插值结果
x
1.0
2.0
3.0
4.0
5.0
y
112
16.5
20.4
26.3
30.5
%x=[1.0 2.0 3.0 4.0 5.0];y=[11.2 16.5 20.4 26.3 30.5];
X1=2.55;
Y11=interp1(x,y,x1,’nearest’);y12=interp1(x,y,x1,’linear’);
Y13=interp1(x,y,x1,’cubic’);y14=interp1(x,y,x1,’spline’);
结果:y11=20.4000 y12=18.645 y13=18.6028 y14=18.4874
2、基于快速Fourier变换的FFT插值
[调用格式] y= interpft(x,n) 通过内插得到的对x进行快速fft变换、长度n的向量,若x为矩阵,则对每一列进行操作。
例:x=[1 2 3 4], 求对x进行FFT的内插结果。
%x=[1 2 3 4]; y=interpft(x,6);
Y=1.0000 1.3840 2.3840 3.0000 4.1160 3.1160
4.1.2 二维插值
[调用格式] interp2(x , y , z ,
xi , yi , method)
X,y,z,有数据向量,长度相同;
Xi yi 为要插值的数据点;method 为插值方法(nearest
最近点插值 linear双线性插值 cubic双三次插值)
例:x y z 的实测数据如表,求与x1=2.3 y1=2.8
处的插值结果。(程序4.1.2.m)
4.1.3 多维插值
[调用格式] interp3(x , y , z , xi , yi , zi ,
method)
interpn(x , y , z….. , xi , yi , zi…… , method)
4.2 曲线拟合
4.2.1 使用多项式曲线拟合
1、计算多项式拟合系数
[调用格式] p=polyfit(x,y,n) [p
s]=polyfit(x,y,n)
[p s mu ]=polyfit(x,y ,n)
P为最小二乘意义上拟合多项式的相关系数;x,y数据向量
N为多项式阶次,
s为一结构,包含vandermonde矩阵R的cholesky因子、自由度df、残差范数normr;
mu为一向量,mu(1) mu(2)
分别为x的均值与标准差。
2、计算拟合后的结果
[调用格式] y=polyval(p, x)
Y为关于自变量x、系数为p次多项式的值
X若为矩阵或向量对其每一点进行操作
P为一向量,各元素为多项式系数(降幂排列),对于n次多项式来说,p有n+1元素
例:x=[0.0 0.3 0.8 1.1 1.6 2.3 ]’
Y=[0.50 0.82 1.14 1.25 1.35 1.40]’
求二次多项式拟合系数,并计算x1=[0.9 1.2 ]时对应的y1。
% x=[0.0 0.3 0.8 1.1 1.6 2.3 ]';
y=[0.50 0.82 1.14 1.25 1.35 1.40]';
p=polyfit(x,y,2);
x1=[0.9 1.2];
y1=polyval(p, x1);
4.2.2 使用指定函数进行曲线拟合
[调用格式] x=lsqnonlin(fun ,x0)
X为返回拟合参数;fun拟合曲线对应的函数;x0初始值
例:根据土的压缩实验数据(e-p),用双曲线模型 确定模型参数a,b(p=0,时可用e0代替),已知p=[0 0.05 0.1
0.2 0.4 0.6 0.8 1.2] ,e=[1.335 1.253 1.180 1.058
0.887 0.803 0.752 0.685]。(程序f422)
function f=f422(x)
p=[0 0.05 0.1 0.2 0.4 0.6 0.8 1.2];
e=[1.335 1.253 1.180 1.058 0.887 0.803 0.752
0.685];
e0=e(1);
z=e0-p./(x(1)+x(2)*p);
f=z-e;
p=[0 0.05 0.1 0.2 0.4 0.6 0.8 1.2];
e=[1.335 1.253 1.180 1.058 0.887 0.803 0.752
0.685];
plot(p,e,'g-'),hold on;
x0=[1 0]';
x=lsqnonlin('f422',x0);
e0=e(1);
e=e0-p./(x(1)+x(2)*p);
plot(p,e,'bo-');
4.3 数据统计
举例说明统计函数调用格式
例:a=[1 3 7;8 1 5;6 9 1] b=[10 1 8;5 7 10; 9 1
7]
max(a) % a列最大值
[maxa ,I ]=max(a) % a列最大值 与对应的行下标
Max(a,b) %(a,b)对应元素最大值
mean(a) % a列平均值
median(a) % a列中值
std(a) % a列标准差
var(a) % a列均方差
sum(a) % a列元素之和
cumsum(a) % a列元素累计之和
sum(sum(a)) % a所有元素之和
sort(a) % a按列排列结果
sort
(a,2) % a按行排列结果
cov(a) % a列向量协方差
corrcoef(a’,b’) % a’,b’相关系数
prod(a) % a列元素积
cumprod(a) % a列元素累计积