Предполагается, что строка с ошибкой действительно:
binary(i) = num2str(r(i));
Тогда при вызове функции с аргументом 25.10 до достижения этой строки имеем:
i=1
r=1.10000
num2str(r(i)) = '1.1'
Вот почему атрибуция
binary(i) = num2str(r(i));
не работает. В Matlab двоичный код (1) представляет собой массив символов 1x1. Вы пытаетесь вписать в него массив символов 1x3 ('1.1').