Geen, не знал о существовании этой функции и не могу проверить, но прочитал описание и у меня сомнения, что ваш код даст корректный результат:
1) Насколько я понял, она заполняет 
NaN, 
NaT и подобные, но у нас будут 
Inf, которые не обрабатываются 
fillmissing()2) Нам надо заменить не все 
Inf, а только те, которые вылезли на диагональ, а если какие-то значения в векторе 

 совпадают, то они могут вылезти и в других местах.