【问题标题】:How to correctly create function handle for multi-variable piecewise function?如何为多变量分段函数正确创建函数句柄?
【发布时间】:2017-05-07 15:25:21
【问题描述】:

我想使用匿名函数为以下内容创建一个 function_handle:

f(x,y) = 1, if 2 <= x <= 3 and y = 1,
f(x,y) = 0, otherwise

我以为我可以这样做:

f @(x,y) 1.*((x >= 2) && (x <= 3) & (y == 1));

当我尝试通过 f(ones(3,1),ones(3,1)) 评估此函数时,我收到错误:

||&amp;&amp; 运算符的操作数必须可转换为逻辑 标量值。

我还注意到,当我只输入标量 xy 时,我的函数似乎工作正常。 我的问题是:如何正确定义我的函数句柄以便它适用于向量/数组?

【问题讨论】:

    标签: matlab function anonymous-function piecewise function-handle


    【解决方案1】:

    如果您打算将xy 用作相同 维度的向量/矩阵,则此处需要一个&amp;

    f = @(x,y) (x>=2) & (x<=3) & (y==1);  %Multiplying by 1 is also not needed here
    

    推荐阅读:What's the difference between & and && in MATLAB?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 1970-01-01
      • 1970-01-01
      • 2020-01-28
      相关资源
      最近更新 更多