Проблемные строки:
ms=0.0;
for i=1:k
ms=@(x) ms+(G(i)/Ld(i))*exp(-x./Ld(i))
end
Внутри цикла вы воспринимаете ms
как дескриптор функции, а также число, которое не будет работать.
Хотя рекурсивное определение дескриптора функции, скорее всего, не лучший путь, к моему удивлению, это возможно. Таким образом, вы можете написать:
ms = @(x)0; %# initialize 'ms' to nothing
for i=1:k
ms = @(x) ms(x) +(G(i)/Ld(i))*exp(-x./Ld(i));
end