
NCL Home >
Documentation >
Functions >
General applied math
sign_matlab
Mimic the behavior of Matlab's sign function.
Available in version 6.2.1 and later.
Prototype
load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/contributed.ncl" ; This library is automatically loaded ; from NCL V6.2.0 onward. ; No need for user to explicitly load. function sign_matlab ( X : numeric ) return_val : same type and shape as X and containing one of 3 values: -1, 0, 1
Arguments
XScalar or array variable of type numeric.
Description
Mimic Matlab's sign function: NCL's sign_matlab(X) returns:
1 if the corresponding element of X is greater than zero 0 if the corresponding element of X equals zero -1 if the corresponding element of X is less than zero
See Also
Examples
The contributed.ncl library is automatically loaded from NCL 6.2.0 onward.
N = 3 M = 9 X = random_normal(0,5,(/N,M/)) X = where(X.gt.-1 .and. X.lt.1, 0.0, X) ; force 0 for demonstration purposes S = sign_matlab(X) print("sign_matlab: "+sprintf("%9.4f",X)+" "+sprintf("%4.0f",S))An edited sample printed output is:
X S (0,0) sign_matlab: 4.3516 1 (0,1) sign_matlab: 4.3646 1 (0,2) sign_matlab: 9.7340 1 (0,3) sign_matlab: 4.9126 1 (0,4) sign_matlab: 1.7698 1 (0,5) sign_matlab: 0.0000 0 (0,6) sign_matlab: -4.2947 -1 (0,7) sign_matlab: 4.3856 1 (0,8) sign_matlab: 4.6598 1 (1,0) sign_matlab: -5.8381 -1 (1,1) sign_matlab: 4.5896 1 (1,2) sign_matlab: 3.6773 1 (1,3) sign_matlab: -14.1248 -1 (1,4) sign_matlab: 0.0000 0 (1,5) sign_matlab: 0.0000 0 (1,6) sign_matlab: 3.7736 1 (1,7) sign_matlab: 0.0000 0 (1,8) sign_matlab: -3.0932 -1 (2,0) sign_matlab: 5.0781 1 (2,1) sign_matlab: -2.5122 -1 (2,2) sign_matlab: 5.8457 1 (2,3) sign_matlab: -3.3532 -1 (2,4) sign_matlab: -1.6618 -1 (2,5) sign_matlab: 8.4589 1 (2,6) sign_matlab: 7.5549 1 (2,7) sign_matlab: 0.0000 0 (2,8) sign_matlab: 1.7595 1