Since the type of a variable may change during the execution of a
program, it can be necessary to do type checking at run-time. Doing this
also allows you to change the behavior of a function depending on the
type of the input. As an example, this naive implementation of abs
returns the absolute value of the input if it is a real number, and the
length of the input if it is a complex number.
function a = abs (x) if (isreal (x)) a = sign (x) .* x; elseif (iscomplex (x)) a = sqrt (real(x).^2 + imag(x).^2); endif endfunction
The following functions are available for determining the type of a variable.
Return true if x is a numeric object, i.e., an integer, real, or complex array. Logical and character arrays are not considered to be numeric.
See also: isinteger, isfloat, isreal, iscomplex, islogical, ischar, iscell, isstruct.
Return true if x is a floating-point numeric object. Objects of class double or single are floating-point objects.
Return true if x is a non-complex matrix or scalar. For compatibility with matlab, this includes logical and character matrices.
Return true if a is a numeric, logical, or character matrix. Scalars (1x1 matrices) and vectors (1xN or Nx1 matrices) are subsets of the more general N-dimensional matrix and
ismatrix
will return true for these objects as well.
Return true if x is a vector. A vector is a 2-D array where one of the dimensions is equal to 1. As a consequence a 1x1 array, or scalar, is also a vector.
Return true if x is a symmetric matrix within the tolerance specified by tol. The default tolerance is zero (uses faster code). Matrix x is considered symmetric if
norm (
x-
x.', Inf) / norm (
x, Inf) <
tol.See also: ishermitian, isdefinite.
Return true if x is Hermitian within the tolerance specified by tol. The default tolerance is zero (uses faster code). Matrix x is considered symmetric if
norm (
x-
x', Inf) / norm (
x, Inf) <
tol.See also: issymmetric, isdefinite.
Return 1 if x is symmetric positive definite within the tolerance specified by tol or 0 if x is symmetric positive semidefinite. Otherwise, return -1. If tol is omitted, use a tolerance of
100 * eps * norm (
x, "fro")
See also: issymmetric, ishermitian.
Return true if x is a logical object.
Return a logical array which is true where the elements of x are prime numbers and false where they are not.
If the maximum value in x is very large, then you should be using special purpose factorization code.
isprime (1:6) ⇒ [0, 1, 1, 0, 1, 0]
If instead of knowing properties of variables, you wish to know which variables are defined and to gather other information about the workspace itself, see Status of Variables.