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

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