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)
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)
注意乘法中的点以元素方式执行.