是否有内置的matlab函数来检查值是否为负值?
例如,
x = -4; % For neg
isneg(x) = 1;
y = 3; % For pos
isneg(y) = 0;
答案 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);