Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.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,这是一件小事,但现在已经困扰了我一段时间,所以我想我应该让人群解决开始:) 我有一个带有时间戳和相应逻辑值(或1/0)的矩阵,即 和另一个时间向量,例如 t = 0:0.1:1e3; 不管怎样,你明白了:) 现在,我(读:你会)如何对的中的逻辑信息进行内插/外推,使其与t中的时间戳相匹配,但内插逻辑总是假定最后一个或当前值,而不是未来值 不知道这是否有意义,但这里是给定的的和t2的预期输出 t2 = [0 5 14 16] output = [0 0 10 15; 0 0 0 1]' 其中,

这是一件小事,但现在已经困扰了我一段时间,所以我想我应该让人群解决开始:)

我有一个带有时间戳和相应逻辑值(或1/0)的矩阵,即

和另一个时间向量,例如

t = 0:0.1:1e3;
不管怎样,你明白了:)

现在,我(读:你会)如何对的
中的逻辑信息进行内插/外推,使其与
t
中的时间戳相匹配,但内插逻辑总是假定最后一个或当前值,而不是未来值

不知道这是否有意义,但这里是给定的
t2的预期输出

t2 = [0 5 14 16]
output = [0 0 10 15; 0 0 0 1]'
其中,
输出的第一列
是插值中使用的
的时间。如果我使用
interp1
和“最近”算法,它将给出

interp1(of(:,1), of, t2, 'nearest')
output = [0 10 15 15; 0 0 1 1]'  

这并不完全是我想要的。

假设向量已排序,您可以尝试这样做,这似乎适用于您的示例,尽管我没有对其进行广泛测试:

of=[-inf 0 10 15 190 inf; 1 0 0 1 1 0]';
t2 = [0 5 14 16];
index=floor(interp1(of(:,1),(1:size(of,1))',t2'));
output=of(index,:);
希望能有帮助


interp1使用的默认方法是
线性
,它最适合您的情况,因为您不需要“最近的”邻居,而是第一个较低或相等的邻居(据我所知)。因此,只需对插值时间戳索引进行简单的截断即可得到结果。

F***me就是这样有时你可能会迷失在复杂性中,我想这就是这里发生的:)而且,如果你重新思考这个问题,infs可以被忽略,所以这是可行的。
of=[-inf 0 10 15 190 inf; 1 0 0 1 1 0]';
t2 = [0 5 14 16];
index=floor(interp1(of(:,1),(1:size(of,1))',t2'));
output=of(index,:);