2026a

# sign


Sign 函数(符号函数)

# 语法

sign(x)

# 说明

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 Matrix{Float64}:
 -1.0  0.0  1.0  1.0  NaN

求矩阵值的符号函数。

M = magic(3) .- 5
sign.(M)
ans = 3×3 Matrix{Int64}:
  1  -1   1
 -1   0   1
 -1   1  -1

求复数的符号函数。

z = 4 - 3*im
sign(z)
ans = 0.8 - 0.6im
绘制符号函数

绘制符号函数,并显示其在过零点处的行为。使用 eps 表示略高于或低于 0 的值。

using TyPlot
x = [-5, -eps(1.0), 0, eps(1.0), 5]
y = sign.(x)
plot(x,y)
ylim([-2 2])
grid("on")
绘制符号函数的实部和虚部

范围内绘制符号函数的实部和虚部。

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

using TyBase
using TyPlot
v = -3:0.1:3
x, y = meshgrid2(v)
z = x .+ 1im .*y

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

s = sign.(z)
re = real(s)
i = imag(s)

绘制实部和虚部。

surf(x,y,re)
title("Real part of sign function")
xlabel("x")
ylabel("y")
figure(2)
surf(x,y,i)
title("Imaginary part of sign function")
xlabel("x")
ylabel("y")

# 输入参数

x - 输入
标量 | 向量 | 矩阵 | 多维数组

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

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

数据类型: Int64 | Int32 | Int16 | Int128 | Float16 | Float32 | Float64 | UInt8 | UInt16 | UInt32 | UInt64

复数支持:

# 另请参阅

abs | abs2 | angle | complex