誰能幫助我應該如何使用interp1功能MATLAB的數據,如以下幾點:如何在MATLAB中使用插值?
-99
3
1
7
10
10
22
29
-99
-99
25
26
60
142
78
124
74
26
13
18
的-99數據值與給錯誤的價值觀和我想插他們...建議? =)謝謝!
誰能幫助我應該如何使用interp1功能MATLAB的數據,如以下幾點:如何在MATLAB中使用插值?
-99
3
1
7
10
10
22
29
-99
-99
25
26
60
142
78
124
74
26
13
18
的-99數據值與給錯誤的價值觀和我想插他們...建議? =)謝謝!
沒有的時刻,但我想你可以做這樣的事情圍繞Matlab的:
Y = [-99
3
1
7
10
10
22
29
-99
-99
25
26
60
142
78
124
74
26
13
18];
%Make an array of x values - I'm assuming yours are evenly spaced
Xi = 1:length(Y);
%remove the -99 points
errors = Y == -99;
X = Xi(~errors);
Y = Y(~errors);
Yi = interp1(X, Y, Xi);
所以在代碼X和Y是x和要插值,即點Y的座標向量你的輸入點(沒有錯誤!),而Xi是你想插入值的點的位置向量(如果你認爲X是位置而Y是值)。 Yi點將是與Xi對應的插值,在這種情況下,我認爲這將是您的原始矢量,其中-99點被線性內插值替換。有趣的事情可能發生在邊緣:/檢查文檔。希望沒有錯誤。
可以說你的數組是a
。
x = find(a ~= -99);
y = a(x);
xi = 1:length(a);
yi = interp1(x, y, xi);
yi
是你在找什麼。
我嘗試了以下方法:例如,如果值X = -99,我已經使其值等於X =(X-1 + X + 1)/ 2,但是我想如果MATLAB的interp1函數可以給我更好的結果或東西,但功能對我來說有點神祕,我想如果我能在1分鐘內得到答案,而不是試圖找出功能1小時=) – jjepsuomi
嘗試閱讀'help interp1',然後讓人們向你解釋。 –
我知道你的意思,我試過,但你知道你什麼時候忙,強調你有時想試試你的運氣;) – jjepsuomi