Немного сложно следить за тем, что вы собираетесь делать. Однако, если N
является скалярным значением, следующее векторизованное решение должно выполнить необходимые вычисления:
Isotherm = @(N) log(N)-log(P) + ...
(1/T)*sum(a.*N.^(0:numel(a)-1)) + ...
sum(b.*N.^(0:numel(b)-1));
Кстати, столько, сколько я НЕ ожидал, что сработает следующее: на самом деле это так:
>> f = @(x) x;
>> for i = 2:4, f = @(x) f(x) + x.^i; end %# f(x) = x + x.^2 + x.^3 + x.^4
>> f(2)
ans =
30 %# 2 + 4 + 8 + 16
>> f(3)
ans =
120 %# 3 + 9 + 27 + 81
Таким образом, способ добавления анонимных функций, возможно, не является источником вашей проблемы, хотя это очень запутанный способ сделать что-то и может иметь некоторые другие ограничения, которые мне еще предстоит найти.