插值:插值是相對擬合略微麻煩一點點:
插值的函式 interp2,這個大家經常見,關於interp2的用法網上介紹的很多。這裡有乙個需要注意的事項就是:以下為例:
x0=[1200:400:4000];
y0=[1200:400:3600];
z0=[1130 1250 1280 1230 1040 900 500 700;
1320 1450 1420 1400 1300 700 900 850;
1390 1500 1500 1400 900 1100 1060 950;
1500 1200 1100 1350 1450 1200 1150 1010;
1500 1200 1100 1550 1600 1550 1180 1070;
1500 1550 1600 1550 1600 1600 1600 1550;
1480 1500 1550 1510 1430 1300 1200 980];
[xi,yi]=meshgrid(1200:10:4000,1200:10:3600);%網格化處理,這一步很多人會忘掉,往往會輸入為:x1=1200:10:4000;y1=1200:10:3600的形式注意
zil=interp2(x0,y0,z0,xi,yi,』linear』);%使用linear進行插值,可以替換,更多的可以在matlab中使用help interp2
mesh(xi,yi,zil)
下面簡單介紹meshgrid intrerp griddate
重要,需要了解,尤其第四條(最後一頁)interp2與griddata的區別:
1. meshgrid
meshgrid用於從陣列a和b產生網格。生成的網格矩陣a和b大小是相同的。它也可以是更高維的。
[a,b]=meshgrid(a,b)
生成size(b)xsize(a)大小的矩陣a和b。它相當於a從一行重複增加到size(b)行,把b轉置成一列再重複增加到size(a)列。因此命令等效於:
a=ones(size(b))*a;
b=b』*ones(size(a))
如下所示:
a=[1:2]a =
1 2
b=[3:5]
b =
3 4 5
[a,b]=meshgrid(a,b)
a =
1 2
1 2
1 2
b =
3 3
4 4
5 5
[b,a]=meshgrid(b,a)b =
3 4 5
3 4 5
a =
1 1 1
2 2 2
interp
interp1——一維資料插值函式
一維資料插值。該函式對資料點之間計算內插值,它找出一元函式f(x)在中間點的數值,其中函式表示式由所給資料決定。
yi=interp1(x,y,xi):返回插值向量yi,每一元素對應於參量xi,同時由向量x與y的內插值決定。參量x 指定資料y的點。若y為一矩陣,則按y的每列計算。yi是階數為length(xi)*size(y,2)的輸出矩陣。
yi=interp1(y,xi):假定x=1:n,其中n為向量y的長度,或者為矩陣y的行數。
yi=interp1(x,y,xi,method):用指定的演算法計算插值。nearest為最近鄰點插值,直接完成計算;linear為線性插值(預設方式),直接完成計算;spline為三次樣條函式插值。
yi=interp1(x,y,xi,method,』extrap』):對於超出x範圍的xi中的分量將執行特殊的外插值法extrap。
yi=interp1(x,y,xi,method,extrapval):確定超出x範圍的xi中的分量的外插值extrapval,其值通常取nan或0。
interp2函式——二維資料內插值
完成二維的資料插值。
zi=interp2(x,y,z,xi,yi):返回矩陣zi,其元素包含對應於參量xi與yi(可以是向量、或同型矩陣)的元素。使用者可以輸入行向量和列向量xi與yi,此時,輸出向量zi與矩陣meshgrid(xi,yi)是同型的。同時取決於由輸入矩陣x、y與z確定的二維函式z=f(x,y)。
zi=interp2(z,xi,yi):預設地,x=1:n、y=1:m,其中[m,n]=size(z)。再按第一種情形進行計算。
zi=interp2(z,n):作n次遞迴計算,在z的每兩個元素之間插入它們的二維插值,這樣,z的階數將不斷增加。interp2(z)等價於interp2(z,1)。
zi=interp2(x,y,z,xi,yi,method):用指定的演算法method計算二維插值。linear為雙線性插值演算法(預設演算法),nearest為最臨近插值,spline為三次樣條插值,cubic為雙三次插值。
interp3函式——三維資料插值
完成三維資料插值。
vi=interp3(x,y,z,v,xi,yi,zi):求出由參量x,y,z決定的三元函式v=v(x,y,z)在點(xi,yi,zi)的值。參量xi,yi,zi是同型陣列或向量。若向量參量xi,yi,zi是不同長度、不同方向(行或列)的向量,這時輸出參量vi與y1,y2,y3為同型矩陣。y1,y2,y3為用函式meshgrid(xi,yi,zi)生成的同型陣列。若插值點(xi,yi,zi)中有位於點(x,y,z)之外的點,則相應地返回特殊變數值nan。
vi=interp3(v,xi,yi,zi):預設地,x=1:n,y=1:m,z=1:p,其中,[m,n,p]=size(v),再按上面的情形計算。
vi=interp3(v,n):作n次遞迴計算,在v的每兩個元素之間插入它們的三維插值。這樣,v的階數將不斷增加。interp3(v)等價於interp3(v,1)。
vi=interp3(…,method):用指定的演算法method做插值計算。linear為線性插值(預設演算法),cubic為三次插值,spline為三次樣條插值,nearest為最鄰近插值。
interpn函式——n維資料插值
完成n維資料插值。
vi=interpn(x1,x2,…,xn,v,y1,y2,..,yn):返回由參量x1,x2,..,xn,v確定的n元函式v=v(x1,x2,..,xn)在點(y1,y2,…,yn)處的插值。參量y1,y2,…,yn是同型的矩陣或向量。若y1,y2,…,yn是向量,則可以是不同長度,不同方向(行或列)的向量。
vi=interpn(v,y1,y2,…,yn):預設地,x1=1:size(v,1),x2=1:size(v,2),…,xn=1:size(v,n),再按上面的情形計算。
vi=interpn(v,ntimes):作ntimes遞迴計算,在v的每兩個元素之間插入它們的n維插值。這樣,v的階數將不斷增加。interpn(v)等價於interpn(v,1)。
griddata
功能 資料格點
格式 (1)zi = griddata(x,y,z,xi,yi)
用二元函式z=f(x,y)的曲面擬合有不規則的資料向量x,y,z。griddata 將返回曲面z 在點(xi,yi)處的插值。曲面總是經過這些資料點(x,y,z)的。輸入參量(xi,yi)通常是規則的格點(像用命令meshgrid 生成的一樣)。xi 可以是一行向量,這時xi 指定一有常數列向量的矩陣。類似地,yi 可以是一列向量,它指定一有常數行向量的矩陣。
(2)[xi,yi,zi] = griddata(x,y,z,xi,yi)
返回的矩陣zi 含義同上,同時,返回的矩陣xi,yi 是由行向量xi 與列向量yi 用命令meshgrid 生成的。
(3)[xi,yi,zi] = griddata(…….,method)
用指定的演算法method 計算:
『linear』:基於三角形的線性插值(預設演算法);
『cubic』: 基於三角形的三次插值;
『nearest』:最鄰近插值法;
『v4』:matlab 4 中的griddata 演算法。
matlab二維插值–interp2與griddata
二者均是常用的二維差值方法,兩者的區別是,interp2的插值資料必須是矩形域,即已知資料點(x,y)組成規則的矩陣,或稱之為柵格,可使用meshgid生成。而griddata函式的已知資料點(x,y)不要求規則排列,特別是對試驗中隨機沒有規律採取的資料進行插值具有很好的效果。griddata(x,y,xi,yi,』v4』) v4是一種插值演算法,沒有具體的名字,原文稱為「matlab 4 griddata method」,是一種很圓滑的差值演算法,效果不錯。x和y提供的已知資料點,xi和yi是需要插值的資料點,一般使用meshgrid生成,當然也可以其他資料,但是那樣繪圖的時候就比較麻煩,不能使用mesh等,只能使用trimesh。
示例如下:
a=[
3 3 1.5300
3 27 0.4210
5 17 0.5980
9 9 0.5900
13 25 0.4470
15 15 1
17 5 0.3830
21 21 0.3100
25 13 0.2830
27 3 0.2820
27 27 0.1200
]; x=a(:,1);
y=a(:,2);
z=a(:,3);
xtemp=linspace(min(x),max(x),100);
ytemp=linspace(min(y),max(y),100);
[x,y]=meshgrid(xtemp,ytemp);
z=griddata(x,y,z,x,y,』v4』);
surf(x,y,z)
shading interp
matlab插值與擬合
插值 兩個變數間的關係可以通過函式來表示,若x為自變數,y為因變數,則函式關係可描述為y f x 在大多數問題中,函式關係式y f x 未知,人們通常採用逼近的方法處理 取得一組資料點 xi,yi 然後構造乙個簡單的函式p x 作為函式y f x 的近似表示式,即y f x p x 若滿足p xi ...
數學建模 插值與擬合
插值與擬合 一 插值方法 1.分段線性插值 將兩個點用線連起來形成的一條折線就是分段線性插值函式。in x 其滿足in xi yi,且其在每個相鄰區間 xi,xi 1 上是線性函式。用in x 計算插值時,只用到x左右兩個節點,計算量與節點個數無關。但節點個數越多,插值誤差越小。2.拉格朗日插值多項...
插值和擬合
一維插值 y interp1 x0,y0,x,method x0單調的 method 預設為線性插值 nearest 最近項插值 linear 線性插值 spline 立方樣條插值 cubic 立方插值 三次樣條插值 光滑,它的曲率也是連續的 pp csape x0,y0,conds conds是邊...