matlab降幂排序,Matlab教程(三)

第四章 数据处理

4.1 数据插值

4.1.1 一维插值

1、多项式插值

[调用格式] interp1(x , y , xi , method)

X和y是有数据的向量,其长度必须相等;

xi为要插值数据点向量;

method为插值方法(nearest最近点插值 ; linear 线性插值;

cubic 分段三次hermite插值 ; spline

三次样条插值)

(就近插值是指根据缺失记录附近的其他记录的情况对缺失值进行插值,例如在上例中,“张三”的性别出现缺失,此时可以用其邻近的“李四”的性别数据替代“张三”的性别数据,由于“李四”的性别为“女”,所以将“张三”的性别也赋为“女”。).v"}M)s­P)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列元素累计积

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值