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列元素累計積
總結
以上是生活随笔為你收集整理的matlab降幂排序,Matlab教程(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php查询跳转结果页面,登录判断跳转页面
- 下一篇: matlab gm 1 1,MATLAB