2013-07-19 67 views
-3

我有數據如何使用interp1在MATLAB

x=[14.0716101600000 17.7292101600000 21.3868101600000 21.3868101600000 25.0444101600000 28.7020101600000 32.3596101600000 36.0172101600000 39.6748101600000 43.3324101600000 46.9900101600000 50.6476101600000 54.3052101600000 57.9628101600000 61.6204101600000 65.2780101600000 68.9356101600000 72.1600000 76.2508101600000 79.9084101600000 83.5660101600000 87.2236101600000] 

y=[0 0 0 0.152400000000000 0.152400000000000 0.533400000000000 0.685800000000000 0.838200000000000 0.990600000000000 1.14300000000000 1.14300000000000 1.14300000000000 1.29540000000000 1.44780000000000 1.60020000000000 1.75260000000000 1.90500000000000 2.05740000000000 2.20980000000000 2.36220000000000 2.51460000000000 2.66700000000000] 

new_x=[21.38,25.03,28.70,32.33,35.99,39.55,45.13,48.80,54.38,58.05]; 

然而,當我使用interp1

new_y = interp1(x,y,new_x); 

不work.Please告訴我why.Thank你這麼多!

+1

它是否顯示錯誤消息? –

+0

當你說「這行不通」時,你強迫人們猜測爲什麼。在這種情況下,答案很清楚,並由Mohsen給出。但更有用的是實際給出整個錯誤信息。 – 2013-07-19 23:58:05

回答

2

x矢量必須是嚴格單調的。在你的數據中,x的第三和第四個元素是相等的。如果您刪除,通過

x(4)=[]; 
y(4)=[]; 

它的工作原理沒有問題說,第四個要素從xy

+0

非常感謝!如果我稍微改變x(4),這應該是單調的。 – fengdongyuxi

+0

@馮東玉喜歡它的幫助。如果您發現幫助社區是正確的,請選擇它作爲答案。 –