函数返回向量而不是标量

时间:2013-05-27 17:41:19

标签: matlab function

我已经定义了两个这样的匿名函数:

hx = @(x) 0.23.*(x>=a).*(x<5) + ...
          2.8020.*exp(-x/2).*(x>=5).*(x<=b);

Hx = @(x) p.*c.*x.*(x>=0).*(x<5) + ...
          p.*(5.*c - 2.*d.*(exp(-x/2)-exp(-5/2))).*(x>=5).*(x<=18);
分段。问题是hx在评估时会返回结果向量。为什么会这样?我无法弄清楚。另一个函数只返回一个值。

2 个答案:

答案 0 :(得分:4)

您可以尝试将a和b包含在匿名函数中:

hx = @(x,a,b) 0.23.*(x>=a).*(x<5) + ...
      2.8020.*exp(-x/2).*(x>=5).*(x<=b);

答案 1 :(得分:2)

假设您正在为hxHx提供标量,似乎hx会返回一个向量,因为ab(或两者)是一个向量(与cdp相对,它们显然也是标量。)