vq = interp1(v, xq, 'nearest', 0)
我希望最近的邻居插值类似于round
(xq)并获得v
中的值。例如:
v = [1 0];
xq = 0.4 : 0.2 : 2
xq =
0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0
round(xq)
ans =
0 1 1 1 1 1 2 2 2
vq = interp1(v, round(xq), '', 0) % get ones for round(xq) == 1
vq =
0 1 1 1 1 1 0 0 0
我希望“最近”的行为与上述round
类似。但是,
vq = interp1(v, xq, 'nearest', 0)
vq =
0 0 0 1 1 1 0 0 0
这既不是round
(xq),也不是floor
,也不是ceil
。我想念什么?
答案 0 :(得分:2)
问题在于您的前三个点(0.4、0.6、0.8)不在域([1、2])之内。因此,interp1使用了您设置为零的“ extrapval”。
尝试:
vq = interp1(v, xq, ‘nearest’, ‘extrap’)
尽管对于所有x <1,它都将返回1,但不确定是否正是您想要的。