missex ============================================== Purpose ---------------- Converts numeric values to the missing value code according to the values given in a logical expression. Format ---------------- .. function:: y = missex(x, mask) :param x: data :type x: NxK matrix :param mask: (matrix of 0's and 1's) that serves as a "mask" for *x*; the 1's in mask correspond to the values in *x* that are to be converted into missing values :type mask: NxK logical matrix :return y: but with those elements that correspond to the 1's in *e* converted to missing. :rtype y: NxK matrix that equals x Examples ---------------- Replace negative prices with a missing value +++++++++++++++++++++++++++++++++++++++++++++++++ :: prices = { 1.25, 0.75, 2.25, -1.50, 2.05 }; // replace elements below zero // with a missing value prices = missex(prices, prices .< 0); :: 1.25 0.75 2.25 . 2.05 Replace :: x = { 0.525 0.419, 0.869 0.973, 0.021 0.357 }; // Logical expression mask = (x .> .30) .and (x .< .60); y = missex(x, mask); After the code above: :: 1 1 . . mask = 0 0 y = 0.869 0.973 0 1 0.021 . A 3x2 matrix of uniform random numbers is created. All values in the interval (0.30, 0.60) are converted to missing. Remarks ------- The matrix *e* will usually be created by a logical expression. For instance, to convert all numbers between 10 and 15 in *x* to missing, the following code could be used: :: y = missex(x, (x .> 10) .and (x .< 15)); Note that "dot" operators MUST be used in constructing the logical expressions. For complex matrices, the missing value code is defined as a missing value entry in the real part of the matrix. For complex *x*, then, :func:`missex` replaces elements with a ". + 0i" value. This function is like :func:`miss`, but is more general in that a range of values can be converted into missings. Source ------ datatran.src .. seealso:: Functions :func:`miss`, :func:`missrv`, :func:`where`