是否有內置的matlab函數檢查值是否爲負值?Matlab:檢查負值的函數
例如,
x = -4; % For neg
isneg(x) = 1;
y = 3; % For pos
isneg(y) = 0;
是否有內置的matlab函數檢查值是否爲負值?Matlab:檢查負值的函數
例如,
x = -4; % For neg
isneg(x) = 1;
y = 3; % For pos
isneg(y) = 0;
您可以創建anonymous function像:
>> fun = @(val) val < 0 ;
>> fun(-4)
ans =
1
>> fun(3)
ans =
0
這裏亞去:
function answer = isneg(value)
if value < 0
answer = 1;
else
answer = 0;
end
首先,你應該考慮負數的屬性。一旦你完成了,你可以很容易地檢查一個數字是否爲負數。我可以想到一些這樣做的方法。
負數有虛平方根。因此,採用-x
的平方根並檢查它是否真實是一種簡單的方法。退房isreal
。
neg = isreal(sqrt(-x));
如果您嘗試負數的sin(x)
,你會得到0和-1之間否定的回答。如果您使用功能floor
並返回此值的負值,您將得到您的答案(請注意,如果您的號碼正好是pi/2
,則這將失敗)。
neg = -floor(sin(x));
當然,除以零會給你無限。由於x + abs(x) == 0
爲負數只,一個簡單的方法來檢查負值是x + abs(x)
劃分1
,並使用isinf
這樣:現在
neg = isinf(1/(x + abs(x)));
,使用操作logical not
,您可以檢查是否絕對值不等於值本身,這種方式:
neg = (x ~= abs(x));
但是,您可以也退房sign
。如果符號爲正,它將返回1
,如果數字爲負,則返回0
。因此,你有兩個選擇:
neg = sign(-x);
或
neg = 1 - sign(x);
+ Inf^0。 – nkjt
怎麼樣'@(x)x <0'? –
請詳細解釋,對不起,我是初學者。 – user3465559
[sign](http://www.mathworks.com/help/matlab/ref/sign.html)怎麼樣?用於除以零的 – iavr