在matlab中求和函数句柄

use*_*231 6 math matlab function

嗨,
我想总结两个函数句柄,但它不起作用.例如:

Y1 = @(X)(X*X);
Y2 = @(X)(X*X + 3*X);
Y3 = Y1 + Y2

我收到的错误是"???未定义的函数或方法'加上'为'function_handle'类型的输入参数."

这只是一个小例子,实际上我实际上需要迭代地总结大约500个相互依赖的函数.

编辑
Clement J.的解决方案确实有效但我无法将其概括为循环并遇到问题.我有功能s=@(x,y,z)((1-exp(-x*y)-z)*exp(-x*y));我有一个包含536个数据点的矢量v和另一个包含536个数据点的矢量w.我的目标是总结s(v(i),y,w(i)),因为i = 1 ... 536因此在变量y中得到一个函数,它是536个函数的总和.我尝试的语法是:

sum=@(y)(s(v(1),y,z2(1))); 
for i=2:536 
  sum=@(y)(sum+s(v(i),y,z2(i))) 
end
Run Code Online (Sandbox Code Playgroud)

Cle*_* J. 5

Fyodor Soikin提出的解决方案是有效的.

>> y3=@(x)(y1(x) + y2(x))
y3 =
@(x) (y1 (x) + y2 (x))
Run Code Online (Sandbox Code Playgroud)

如果要在多个函数上执行此操作,可以使用中间变量:

>> f1 = y1;
>> f2 = y2;
>> y3=@(x)(f1(x) + f2(x))
Run Code Online (Sandbox Code Playgroud)

评论后编辑:我不确定是否理解这个问题.你可以在函数之外定义你的向量v和w:

v = [5 4]; % your 536 data
w = [4 5];
y = 8;
s=@(y)((1-exp(-v*y)-w).*exp(-v*y))
s_sum = sum(s(y))
Run Code Online (Sandbox Code Playgroud)

注意乘法中的点以元素方式执行.