我正在尝试在for循环中为匿名函数添加术语。
等温线= @(N)log(N)-log(P);
K = 0; 对于a = a Isotherm2 = @(N)(1 / T)* an * mpower(N,k); 等温线= @(N)等温线(N)+等温线2(N); k = k + 1; 端
K = 0; 对于bn = b Isotherm2 = @(N)bn * mpower(N,k); 等温线= @(N)等温线(N)+等温线2(N); k = k + 1; 端
我已经尝试了上面的代码,但它无法正常工作。我需要使用m文件功能吗?
答案 0 :(得分:4)
要遵循您打算做的事情有点困难。但是,如果N
是标量值,则以下向量化解决方案应执行所需的计算:
Isotherm = @(N) log(N)-log(P) + ...
(1/T)*sum(a.*N.^(0:numel(a)-1)) + ...
sum(b.*N.^(0:numel(b)-1));
顺便说一下,只要我 DID NOT 希望以下内容有效,它确实会:
>> 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
因此,添加匿名函数的方式可能不是您的问题的根源,尽管它是一种非常混淆的做事方式,并且可能还有其他一些我尚未找到的限制。