为什么插值给我 NANi 值

Why interpolation gives me NANi values

我有一个向量 X = [1.4104 - 0.6176i -0.5766 + 0.3408i]; 我需要在 Matlab 中使用命令 interp1 运行 插值到 1:4:8 中,但这给了我 NANi 结果,如下所示:

X =   [1.4104 - 0.6176i  -0.5766 + 0.3408i];
Y = interp1(1:4:8 , X , 1:8)   

向量Y的结果是1.4104 - 0.6176i 0.9137 - 0.3780i 0.4169 - 0.1384i -0.0798 + 0.1012i -0.5766 + 0.3408i NaN + NaNi NaN + NaNi NaN + NaNi

那么,这有什么问题呢?

插值在其边界处未定义。 X如果长度为2,对应的time/position值为1:4:8=[1,5]。现在,您想在 time/position 1:8 = [1 2 3 4 5 6 7 8] 处获得结果。插值器现在应该如何处理 [6 7 8] 处的内容,因为它无法推断。

您可能想做的是

Y = interp1(0:4:8 , X , 1:8) 

(从0开始得到[0 4 8]?