如何在 Matlab 中进行如下的 beta 缩减?
我的目标是避免重复分配和懒惰评估的事情——可能与多步匿名函数的问题有关。
显然,大多数功能特性仅在Matlab2013B中支持。
你是这个意思吗:
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
重申 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...