产生矢量值的特殊功能

时间:2014-04-19 21:49:31

标签: matlab function handle

我在matlab中有一个函数句柄,我想输入一个向量来返回一个经过函数映射的向量。但是这个函数在两个参数中有所不同,所以我希望能够输入该标量的值以及函数值。

功能是:

syms a
g = @(y) (exp(((-1/a).*atanh(y)).^2).*cos((2/a).*atanh(y)).*(1/a).*(1/(1+y.^2)));

或者我也可以

g = @(y,a) (exp(((-1/a).*atanh(y)).^2).*cos((2/a).*atanh(y)).*(1/a).*(1/(1+y.^2)));

我希望能够做的是

values = g([-0.5 0 0.5],3);

并返回一个三元素向量。

但这会返回错误,我不知道如何让它按照我的意愿执行。

1 个答案:

答案 0 :(得分:3)

我认为你在最后一个部门忘记了一个.

g = @(y,a) (exp(((-1/a).*atanh(y)).^2).*cos((2/a).*atanh(y)).*(1/a).*(1./(1+y.^2)));

这适合我。

BTW:如果你这样做:

g = @(y,a) (exp(((-1./a)*atanh(y)).^2).*(cos((2./a)*atanh(y))).*((1./a)*(1./(1+y.^2))));

您可以同时输入ya作为向量:

g([-0.5 0 0.5],[1 2 3]')
ans =
   0.49202   1.00000   0.49202
   0.36789   0.50000   0.36789
   0.25747   0.33333   0.25747

这是:

g([a b c], [d e f]')
ans = 
   g(a,d)    g(b,d)    g(c,d)
   g(a,e)    g(b,e)    g(c,e)
   g(a,f)    g(b,f)    g(c,f)