我试图通过将它添加到自身(如C或Java中的+ =运算符)来总结一个匿名的,2变量的函数。示例代码如下:
f = @(x, y) 0;
for iter = 1: 10
a = @(x) x^2;
b = @(y) cos(y);
c = @(x, y) a(x) + b(y);
f = @(x, y) f(x, y) + c(x, y);
end
是否可以这样做或语法不好?有更有效或合理的方法吗?提前Ty!
答案 0 :(得分:1)
拥有基于其他匿名函数构建的匿名函数是很常见的。看起来f
是其他匿名函数之和的结果,所以f
应该很好并且在循环中到达该语句时很好用。但是,您编写的代码在创建后不会使用任何生成的匿名函数。我还建议使用逐元素操作来确保可以包含多个输入(例如矩阵/向量)。
因此:
f = @(x, y) 0;
for iter = 1: 10
a = @(x) x.^2; % Change
b = @(y) cos(y);
c = @(x, y) a(x) + b(y);
f = @(x, y) f(x, y) + c(x, y);
end
这是一个可重复的小例子,显示了一次迭代时语句链是什么样的,然后在最后使用结果最终函数f
:
>> f = @(x,y) 0
f =
@(x, y) 0
>> a = @(x) x.^2
a =
@(x) x .^ 2
>> b = @(y) cos(y)
b =
@(y) cos (y)
>> c = @(x, y) a(x) + b(y)
c =
@(x, y) a (x) + b (y)
>> f = @(x, y) f(x, y) + c(x, y)
f =
@(x, y) f (x, y) + c (x, y)
>> f(0.5, 7)
ans = 1.0039
>>