Main Content

sign

符号関数 (関数 signum)

構文

説明

Y = sign(x) は、x と同じサイズの配列 Y を返します。Y の各要素は次のようになります。

  • x の対応する要素が 0 より大きい場合、1

  • x の対応する要素が 0 に等しい場合、0

  • x の対応する要素が 0 より小さい場合、-1

  • x が複素数の場合、x./abs(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

符号関数をプロットし、ゼロクロッシングでの動作を表示します。0 のすぐ上と下の値を表現するには、eps を使用します。

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 より前に導入

参考

| | |