如何在Matlab中进行如下的beta减少?
我的目标是避免重复分配和懒惰评估事物 - 可能与问题multiple step anonymous functions有关。
显然,大多数功能特性仅在Matlab2013B中得到支持。
答案 0 :(得分:1)
这就是你的意思:
x = 3;
f = @(y)(x+x*y);
现在f(y)
是函数3+3*y
。
所以你可以把它放在循环中,例如:
f = {};
for x = 1:5
f{x} = @(y)(x+x*y);
end;
然后为f(2)
x
cellfun(@(y)y(2), f)
ans =
3 6 9 12 15
答案 1 :(得分:0)
重申Dan的回答,这就是我在Octave中得到的结论:
octave:1> f = @(x) @(y) x + y
f =
@(x) @(y) x + y
octave:2> g = f (2)
g =
@(y) x + y
octave:3> g (3)
ans = 5
但我不知道Matlab ......