2014-03-26 1 views
-2

값이 음수인지 확인하는 내장 MATLAB 함수가 있습니까? 당신이 좋아하는 anonymous function 만들 수 있습니다Matlab : 음수 값을 확인하는 기능

x = -4; % For neg 

isneg(x) = 1; 

y = 3; % For pos 

isneg(y) = 0; 
+4

어떻게 @'에 대한 (x)는 X <0 '? –

+0

더 자세히 설명해주십시오. 미안하지만 초보자입니다. – user3465559

+2

[sign] (http://www.mathworks.com/help/matlab/ref/sign.html)은 어떻습니까? – iavr

답변

1

예를 들어

: 여기

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

ans = 

    1 

>> fun(3) 

ans = 

    0 
1

나중에 가서 :

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

먼저 음수의 특성을 생각한다. 일단 그렇게하면 숫자가 음수인지 아닌지 쉽게 확인할 수 있습니다. 나는 이것을하는 몇 가지 방법을 생각할 수 있습니다.

음수는 가상의 제곱근이입니다. 따라서 -x의 제곱근을 취하여이 것이 진짜인지 확인하는 것이이 작업을 수행하는 간단한 방법입니다. isreal을 확인하십시오.

neg = isreal(sqrt(-x)); 

음수의 sin(x)을 시도 할 경우, 0과 -1 사이에 부정적인 대답을 얻을 것이다. floor 함수를 사용하고 음수 값을 반환하면 대답을 얻을 수 있습니다 (숫자가 정확히 pi/2 일 경우이 오류가 발생합니다).

neg = -floor(sin(x)); 

물론, 0으로 분할은를 무한 제공 할 것입니다. 음수 x + abs(x) == 0 만, 음의 값을 확인하는 간단한 방법은 x + abs(x) 의해 1 분할하고 isinf이 방법을 사용하기 때문에 다음 동작 logical not를 사용하기

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

를 확인할 수 있습니다 절대치 경우 값 자체,이 방법 불평등이다 : 그러나

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

, 당신은 sign을 확인할 수 있습니다. 부호가 양수이면 1을, 음수이면 0을 반환합니다. 따라서이 두 가지 대안이 있습니다

neg = sign(-x); 

또는

neg = 1 - sign(x); 
+0

+ 0으로 나누기위한 Inf^0. – nkjt