2

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

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在评估时返回结果向量。为什么会这样?我想不通。另一个函数只返回一个值。

4

2 回答 2

4

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

hx = @(x,a,b) 0.23.*(x>=a).*(x<5) + ...
      2.8020.*exp(-x/2).*(x>=5).*(x<=b);
于 2013-05-27T18:14:47.047 回答
2

假设您同时使用scalarhxscalar喂食,似乎返回一个向量,因为其中一个或(或两者)是一个向量(与, and相反,它们显然也是标量)。Hxhxabcdp

于 2013-05-27T17:44:23.473 回答