在MATLAB中集成后从匿名函数中获取点

时间:2015-02-22 22:44:57

标签: matlab

我想获得MATLAB

中各点的v(U,n0)
eq = @(q,U,n0) 2*(1-cos(2*pi*q));
hq = @(q,U,n0) ((eq)^2+2*U*n0*(eq))^(1/2);
y = @(q,U,n0) (((eq)+(U*n0))/hq)-1;
a = -0.5;
b = 0.5;
v = @(U,n0) quad(@(q) y(q,U,n0),a,b);

但我收到很多错误,比如

>> v(1,2)
  Undefined function 'plus' for input arguments of type 'function_handle'.

Error in @(q,U,n0)(((eq)+(U*n0))/hq)-1

Error in @(q)y(q,U,n0)

Error in quad (line 72) y = f(x, varargin{:});

Error in @(U,n0)quad(@(q)y(q,U,n0),a,b)

有人可以帮我解决错误吗?

1 个答案:

答案 0 :(得分:4)

您正在使用函数句柄而未指定其参数。例如,在您定义eq(q,U,n0)后,您可以在hq中使用它,就像变量(eq)一样,没有任何输入。无论何时使用函数,都必须为其提供输入,因此请使用eq(q,U,n0),而不仅仅是eq