Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在MATLAB中使用插值?_Matlab_Interpolation - Fatal编程技术网

如何在MATLAB中使用插值?

如何在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

任何人都可以帮助我如何使用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
         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);