function - matlab中的求和函数句柄

标签 function math matlab

你好
我试图对两个函数句柄求和,但它不起作用。 例如:

y1=@(x)(x*x);
y2=@(x)(x*x+3*x);
y3=y1+y2

我收到的错误是“??? Undefined function or method 'plus' for input arguments of type 'function_handle'.”

这只是一个小例子,实际上我需要对大约 500 个相互依赖的函数进行迭代求和。

编辑
Clement J. 的解决方案确实有效,但我无法将其概括为一个循环并遇到了问题。我有函数 s=@(x,y,z)((1-exp(-x*y)-z)*exp(-x*y)); 我有一个向量v 包含 536 个数据点,另一个向量 w 也包含 536 个数据点。我的目标是总结 s(v(i),y,w(i)) for 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

最佳答案

Fyodor Soikin 提出的解决方案有效。

>> y3=@(x)(y1(x) + y2(x))
y3 =
@(x) (y1 (x) + y2 (x))

如果你想在多个函数上执行它,你可以使用中间变量:

>> f1 = y1;
>> f2 = y2;
>> y3=@(x)(f1(x) + f2(x))

评论后编辑: 我不确定是否理解这个问题。你能像函数外那样定义向量 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))

注意乘法中的点以按元素执行。

关于function - matlab中的求和函数句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4704664/

相关文章:

list - Visual Studio代码-类和方法列表?

php - 将行中的所有数字相加

Python matplotlib 值错误 : The truth value of an array with more than one element is ambiguous

matlab - 用于转换许多元素的 dec2bin 函数的更快版本?

c - 如何使用 SDCC 通过内存地址声明函数

function - Fortran 函数中带有可选参数的段错误

javascript - 从属性数量未知的对象构建 URL 的最有效方法是什么?

ruby - Ruby 中的 Project Euler #6(有什么区别?)

c# - ^ 运算符是做什么的?

matlab - 设置 MATLAB 的默认图形大小