2017-05-03 35 views
0

使用interp2已知以下具體點三次插值是有辦法,以實現雙三次內插,而不會產生一個完整的微細間隔的網格?:用於在Matlab

years = [5,10,20,25,40]; 
    service = 1:3; 
wage = [50 99 787.685 
      779 795 850 
      803 779 388 
      886 753 486 
      849 780 598]; 
    w = interp2(service,years,wage,1.5,37.5,'cubic') 

警告:「立方」的方法要求網格間距統一爲 。將方法從「立方體」切換到「樣條線」,因爲此條件未得到滿足。

我瞭解警告的原因。所以希望通過指定特定點來找到解決方案,而不必生成整個等距表面(可用數據不是等間距的)。不一定必須是interp2。我將不得不爲數百個表面和數百個查詢點運行此操作,因此在返回「w」時需要相當快。 任何想法?

+0

不知道我理解這個問題?你可以提供你想要提供的輸入數據類型(和預期的輸出)。因爲它代表着你的代碼工作(雖然有警告)...... – Justin

+0

除非它提到奇點等,你通常可以忽略這個警告。它是否給你正確的答案?在這種情況下,它可能會自動切換到「樣條線」。 – Anthony

回答

1

如果你堅持要用你可以使用griddata'cubic'插值方法被指定爲插值散亂數據,也就是說,它是不是均勻間隔網格定義的數據:

years = [5,10,20,25,40]; 
service = 1:3; 
wage = [50 99 787.685 
    779 795 850 
    803 779 388 
    886 753 486 
    849 780 598]; 
w = griddata(service,years,wage,1.5,37.5,'cubic')