Main Content

本页翻译不是最新的。点击此处可查看最新英文版本。

sign

Sign 函数(符号函数)

语法

说明

示例

Y = sign(x) 返回与 x 大小相同的数组 Y,其中 Y 的每个元素是:

  • 1,前提是 x 的对应元素大于 0

  • 0,前提是 x 的对应元素等于 0

  • -1,前提是 x 的对应元素小于 0

  • x./abs(x),前提是 x 为复数。

示例

全部折叠

求数字的符号函数。

sign(2)
ans = 1

求向量值的符号函数。

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

    -1     0     1     1   NaN

求矩阵值的符号函数。

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

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

求复数的符号函数。

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

绘制符号函数,并显示其在过零点处的行为。使用 eps 表示略高于或低于 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.

-3<x<-3-3<y<3 范围内绘制符号函数的实部和虚部。

首先,使用 meshgrid 创建 -3 < x < 3-3 < y < 3 范围内的值的网格。然后使用 z = x + 1i*y 根据这些值创建复数。

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

求出 z 的符号函数的实部和虚部。

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

绘制实部和虚部。

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.

输入参数

全部折叠

输入,指定为标量、向量、矩阵或多维数组。

如果 x 的元素是 NaN,则 sign 在输出的对应元素中返回 NaN

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | duration
复数支持:

扩展功能

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2006a 之前推出

另请参阅

| | |