我最近在matlab中用到插值法,看起來有interp1/2/3和interpn這兩個函式可以用。然而,我驚訝地發現,這兩類函式不是等價的:
interp1和interpn是等價的,結果都是1584
interp1([1,2],[0,14317],1.1107)=1584
interpn([1,2],[0,14317],1.1107)=1584
但interp2和interpn就不一樣了!
interp2([1,2],[6,7],[0,14317;25217,45817],1.1107,6.1348,'linear')=5077
interpn([1,2],[6,7],[0,14317;25217,45817],1.1107,6.1348,'linear')=4815
怎麼會這樣呢?原來interp1/2/3主要用於meshgrid,而interpn用於ngrid
具體有什麼差別我也不懂,但簡單地說,meshgrid的xy要交換!
交換了xy之後,interp2就和interpn一樣了。
interp2([6,7],[1,2],[0,14317;25217,45817],6.1348,1.1107,'linear')=4815
結論:而對於多維度計算來說,用interpn就好......
matlab中的interp2插值函式
看了好多文章才大體明白插值的含義,b,這理解能力也是醉了.為了記住這個慘痛教訓,在吃飯前要把看到的文章總結一下 interp2 功能 二維資料內插值 格式 1 zi interp2 x,y,z,xi,yi 好多文章裡巴拉巴拉說了一堆,迷迷糊糊的,我還是用我的大白話敘述一下 x,y是原始資料,相當於座...
Matlab中二維插值interp2函式的使用
問題 已知m n個節點 xi,yi,zij i 1,2,3.m,j 1,2,3.n,且x1對上述問題,matlab中提供了二維插值函式interp2,其基本格式為cz interp2 x,y,z,cx,cy,method 其中x和y是自變數。x和y的分量值必須是單調遞增的。x,y,z的值是已經知道的...
MATLAB中的ind2vec和vec2ind函式
先說容易理解的vec2ind吧,從命令名字上可以看出是 向量變索引 假設乙個3 6的稀疏矩陣t 1,0 1 0 0 1 0 t 2,1 0 1 1 0 0 t 3,0 0 0 0 0 1 通過vec2ind t 將會得到什麼?因為通過矩陣知道t是6列的,t 0 1 0 0 1 0 1 0 1 1 0...