값이 음수인지 확인하는 내장 MATLAB 함수가 있습니까? 당신이 좋아하는 anonymous function 만들 수 있습니다Matlab : 음수 값을 확인하는 기능
x = -4; % For neg
isneg(x) = 1;
y = 3; % For pos
isneg(y) = 0;
값이 음수인지 확인하는 내장 MATLAB 함수가 있습니까? 당신이 좋아하는 anonymous function 만들 수 있습니다Matlab : 음수 값을 확인하는 기능
x = -4; % For neg
isneg(x) = 1;
y = 3; % For pos
isneg(y) = 0;
예를 들어
: 여기>> 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));
물론, 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으로 나누기위한 Inf^0. – nkjt
어떻게 @'에 대한 (x)는 X <0 '? –
더 자세히 설명해주십시오. 미안하지만 초보자입니다. – user3465559
[sign] (http://www.mathworks.com/help/matlab/ref/sign.html)은 어떻습니까? – iavr