Проблема в том, что dec2bin возвращает строку , а не числовой вектор. Вы должны преобразовать массив char в числовой массив, и вы можете сделать это с помощью arrayfun , например:
b = dec2bin(15);
b_numeric = arrayfun(@(x) str2num(x), b);
n = d.*b_numeric;
Если у вас есть набор инструментов системы связи, у вас уже есть функция, которая делает именно это, de2bin