2012-08-06 74 views
0

我已經完成了插值,但不知道是否可以保存數據。例如。這是我的代碼:Matlab中的插值

load ab1.txt 
x= ab1(:,2); 
y= ab1(:,3); 
z= 399.25:1:2179.5; 
yi= interp1(x,y,z); 
plot(x,y,'o',z,yi) 

我有一個像352.4很多值,352.5 354.3 ...我想要得到的,具有內插,從每一個number.For例如只有一個值,該值352我想獲得插值的值。那可能嗎?或者我將不得不做一些不同的媒體或類似的東西?

+2

你確定你使用了'interp1'嗎?正如您現在所做的那樣,它將採用數據「(x,y)」並插值「z = [399.25 400.25 401.25 402.25 .... 2178.25 2179.25]」。所以回報很多值是正常的,因爲你要求找到很多值的插值。保存數據通過[保存功能]完成(http://www.mathworks.nl/help/techdoc/ref/save.html)。 – 2012-08-06 09:46:04

+0

嗨Gunther,謝謝你的回答。最後,我決定用Excel的平均值來計算每個值之一。所以,例如,如果我有352.3 = 0.5和352.4 = 0.628,我計算352 = 0.564。那麼,現在的問題是我需要每個數字的值。我的意思是......例如,如果我有352和354,我還需要353號。我想我必須用插值法來做。我會盡力去做。 – user1578688 2012-08-06 11:44:42

回答

0
y352 = interp1(X,Y,352) 

讓你在352

8月8日插值2012編輯:那麼OP評論

感謝mwengler!但問題是我需要使用插值查找缺失值。例如。我有350,351,353,354(x)和他們的值(y)。我需要這個Matlab識別數字352是錯過的,並通過插值找到它們的值。那可能嗎?非常感謝! :) - user1578688昨天

從您的其他評論,如果沒有在範圍N<=x<N+1範圍內的X中的真實樣本,您認爲一個整數N將丟失。所以你的問題的答案是: 1)找到缺失的數字,並製作它們的數組 2)只插入這些數字的值。

X = sort(X); % make sure our X go from least to most in order 
XasInt = floor(X); % the integer X at each X value 
XasIntFullRange = (X(1):X(end))'; % all X including "missing" values 
XasIntMissing = setdiff(XasIntFullRange,XasInt); % just the missing ones 
YasIntMissing = interp1(X,Y,XasIntMissing); % interpolated values of the missing 
+0

謝謝mwengler!但問題是我需要使用插值查找缺失值。例如。我有350,351,353,354(x)和他們的值(y)。我需要這個Matlab識別數字352是錯過的,並通過插值找到它們的值。那可能嗎?非常感謝! :) – user1578688 2012-08-07 07:33:23