Matlab:检查负值的函数

时间:2014-03-26 18:06:23

标签: function matlab matlab-figure matlab-guide

是否有内置的matlab函数来检查值是否为负值?

例如,

x = -4; % For neg

isneg(x) = 1;

y = 3; % For pos

isneg(y) = 0;

3 个答案:

答案 0 :(得分:1)

您可以创建anonymous function,如:

>> fun = @(val) val < 0 ;
>> fun(-4)

ans =

     1

>> fun(3)

ans =

     0

答案 1 :(得分:1)

这里你去:

function answer = isneg(value)
    if value < 0
        answer = 1;
    else
        answer = 0;
    end

答案 2 :(得分:1)

首先,您应该考虑负数属性。完成后,您可以轻松检查数字是否为负数。我可以想到几种方法。

负数有假想的平方根。因此,取-x的平方根并检查它是否真实是一种简单的方法。查看isreal

neg = isreal(sqrt(-x));

如果您尝试使用 sin(x)的负数,则会得到0到-1之间的否定答案。如果您使用函数floor并返回此值的负值,您将得到答案(请注意,如果您的数字恰好是pi/2,则会失败)。

neg = -floor(sin(x));

当然,除以零会给你无限的。由于x + abs(x) == 0仅针对负数,因此检查负值的简单方法是将1除以x + abs(x),并以这种方式使用isinf

neg = isinf(1/(x + abs(x)));

现在,使用操作logical not,您可以检查绝对值是否与值本身不相等,这样:

neg = (x ~= abs(x));

但是,您 也可以查看sign。如果符号为正,则返回1;如果数字为负,则返回0。因此,您有两种选择:

neg = sign(-x);

neg = 1 - sign(x);