Main Content

sign

Sign function (signum function)

Syntax

Description

Y = sign(x) returns an array Y the same size as x, where each element of Y is:

  • 1 if the corresponding element of x is greater than 0.

  • 0 if the corresponding element of x equals 0.

  • -1 if the corresponding element of x is less than 0.

  • x./abs(x) if x is complex.

example

Examples

collapse all

Find the sign function of a number.

sign(2)
ans = 
1

Find the sign function of the values of a vector.

V = [-11 0 1.5 Inf NaN];
sign(V)
ans = 1×5

    -1     0     1     1   NaN

Find the sign function of the values of a matrix.

M = magic(3) - 5;
sign(M)
ans = 3×3

     1    -1     1
    -1     0     1
    -1     1    -1

Find the sign function of a complex number.

z = 4 - 3*i;
sign(z)
ans = 
0.8000 - 0.6000i

Plot the sign function and show its behavior at the zero-crossing. Use eps to represent values just above and below 0.

x = [-5 -eps(1) 0 eps(1) 5];
y = sign(x);
plot(x,y)
ylim([-2 2])
grid on

Figure contains an axes object. The axes object contains an object of type line.

Plot real and imaginary parts of the sign function over -3<x<-3 and -3<y<3.

First, create a mesh of values over -3 < x < 3 and -3 < y < 3 using meshgrid. Then create complex numbers from these values using z = x + 1i*y.

v = -3:0.1:3;
[x, y] = meshgrid(v);
z = x + 1i*y;

Find the real and imaginary parts of the sign function of z.

s = sign(z);
re = real(s);
im = imag(s);

Plot the real and imaginary parts.

surf(x,y,re)
title('Real part of sign function')
xlabel('x')
ylabel('y')

Figure contains an axes object. The axes object with title Real part of sign function, xlabel x, ylabel y contains an object of type surface.

figure(2)
surf(x,y,im)
title('Imaginary part of sign function')
xlabel('x')
ylabel('y')

Figure contains an axes object. The axes object with title Imaginary part of sign function, xlabel x, ylabel y contains an object of type surface.

Input Arguments

collapse all

Input, specified as a scalar, vector, matrix, or multidimensional array.

If an element of x is NaN, then sign returns NaN in the corresponding element of the output.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration
Complex Number Support: Yes

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced before R2006a

See Also

| | |