如何在MATLAB中使用插值?
任何人都可以帮助我如何使用MATLAB上的interp1函数处理以下数据:如何在MATLAB中使用插值?,matlab,interpolation,Matlab,Interpolation,任何人都可以帮助我如何使用MATLAB上的interp1函数处理以下数据: -99 3 1 7 10 10 22 29 -99 -99 25 26 60 142 78 124 74 26 13 18 -99数据值对应于错误值,我想对它们进行插值…建议?=谢谢大家! 目前不在Matlab附近,但我认为您可以这样做: Y = [-99
-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坐标向量,即没有错误的输入点!,席是你想插值值的点的向量,如果你认为x是位置,y是值。点Yi将是对应于席的插值值,我认为在这种情况下,将是原始的向量,用线性插值值代替-99点。边缘可能会发生有趣的事情:/n检查文档。希望没有错误。假设您的数组是a
易建联就是你要找的 我尝试了以下方法:例如,如果值X=-99,我将其值设为等于X=X-1+X+1/2,但是我在想MATLAB的interp1函数是否能给我更好的结果或者其他什么,但是这个函数对我来说有点神秘,我在想我是否能在1分钟内得到答案,而不是试图在1小时内算出这个函数=试着在要求别人解释之前阅读帮助interp1。我知道你的意思,我试过了,但你知道,当你忙碌和紧张的时候,你有时想试试运气;
x = find(a ~= -99);
y = a(x);
xi = 1:length(a);
yi = interp1(x, y, xi);