Почему интерполяция дает мне значения NANi - PullRequest
0 голосов
/ 03 апреля 2020

У меня есть вектор X = [1.4104 - 0.6176i -0.5766 + 0.3408i]; Мне нужно запустить интерполяцию в 1: 4: 8 с помощью команды interp1 в Matlab, но это дает мне результаты 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

Так в чем же проблема?

1 Ответ

2 голосов
/ 03 апреля 2020

интерполяция не определена на своей границе. X если длина 2 и соответствующие время / позиция значения равны 1:4:8 = [1,5]. И теперь вы хотите получить результат на время / позицию 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]

...