# half

Construct half-precision numeric object

## Description

Use the half constructor to assign a half-precision data type to a number or variable. A half-precision data type occupies 16 bits of memory, but its floating-point representation enables it to handle wider dynamic ranges than integer or fixed-point data types of the same size. For more information, see Floating-Point Numbers and What is Half Precision?.

For a list of functions that support code generation with half-precision inputs, see Half Precision Code Generation Support.

## Creation

### Description

example

a = half(v) converts the values in v to half-precision.

### Input Arguments

expand all

Input array, specified as a scalar, vector, matrix, or multidimensional array.

Data Types: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical
Complex Number Support: Yes

## Object Functions

These functions are supported for simulation with half-precision inputs in MATLAB®. For a list of functions that support code generation with half-precision inputs, see Half Precision Code Generation Support.

expand all

 abs Absolute value and complex magnitude acos Inverse cosine in radians acosh Inverse hyperbolic cosine asin Inverse sine in radians asinh Inverse hyperbolic sine atan Inverse tangent in radians atan2 Four-quadrant inverse tangent atanh Inverse hyperbolic tangent ceil Round toward positive infinity conj Complex conjugate conv Convolution and polynomial multiplication conv2 2-D convolution cos Cosine of argument in radians cosh Hyperbolic cosine cospi Compute cos(X*pi) accurately cumsum Cumulative sum dot Dot product exp Exponential expm1 Compute exp(x)-1 accurately for small values of x fft Fast Fourier transform fft2 2-D fast Fourier transform fftn N-D fast Fourier transform fftshift Shift zero-frequency component to center of spectrum fix Round toward zero floor Round toward negative infinity fma Multiply and add using fused multiply add approach hypot Square root of sum of squares (hypotenuse) ifft Inverse fast Fourier transform ifft2 2-D inverse fast Fourier transform ifftn Multidimensional inverse fast Fourier transform ifftshift Inverse zero-frequency shift imag Imaginary part of complex number ldivide Left array division log Natural logarithm log10 Common logarithm (base 10) log1p Compute log(1+x) accurately for small values of x log2 Base 2 logarithm and floating-point number dissection mean Average or mean value of array minus Subtraction mldivide Solve systems of linear equations Ax = B for x mod Remainder after division (modulo operation) mrdivide Solve systems of linear equations xA = B for x mtimes Matrix multiplication plus Add numbers, append strings pow10 Base 10 power and scale half-precision numbers pow2 Base 2 exponentiation and scaling of floating-point numbers power Element-wise power prod Product of array elements rdivide Right array division real Real part of complex number rem Remainder after division round Round to nearest decimal or integer rsqrt Reciprocal square root sign Sign function (signum function) sin Sine of argument in radians sinh Hyperbolic sine sinpi Compute sin(X*pi) accurately sqrt Square root sum Sum of array elements tan Tangent of argument in radians tanh Hyperbolic tangent times Multiplication uminus Unary minus uplus Unary plus
 cast Convert variable to different data type cell Cell array double Double-precision arrays eps Floating-point relative accuracy Inf Create array of all Inf values int16 16-bit signed integer arrays int32 32-bit signed integer arrays int64 64-bit signed integer arrays int8 8-bit signed integer arrays isa Determine if input has specified data type isfloat Determine whether input is floating-point data type isinteger Determine whether input is integer array islogical Determine if input is logical array isnan Determine which array elements are NaN isnumeric Determine whether input is numeric array isobject Determine if input is MATLAB object isreal Determine whether array uses complex storage logical Convert numeric values to logicals NaN Create array of all NaN values single Single-precision arrays storedInteger Stored integer value of fi object typecast Convert data type without changing underlying data uint16 16-bit unsigned integer arrays uint32 32-bit unsigned integer arrays uint64 64-bit unsigned integer arrays uint8 8-bit unsigned integer arrays
 all Determine if all array elements are nonzero or true and Find logical AND any Determine if any array elements are nonzero eq Determine equality ge Determine greater than or equal to gt Determine greater than isequal Determine array equality isequaln Determine array equality, treating NaN values as equal le Determine less than or equal to Logical Operators: Short-Circuit && || Logical operations with short-circuiting lt Determine less than ne Determine inequality not Find logical NOT or Find logical OR
 cat Concatenate arrays circshift Shift array circularly colon Vector creation, array subscripting, and for-loop iteration complex Create complex array ctranspose Complex conjugate transpose empty Create empty array of specified class eye Identity matrix flip Flip order of elements fliplr Flip array left to right flipud Flip array up to down horzcat Horizontal concatenation for heterogeneous arrays iscolumn Determine whether input is column vector isempty Determine whether array is empty isfinite Determine which array elements are finite isinf Determine which array elements are infinite ismatrix Determine whether input is matrix isrow Determine whether input is row vector isscalar Determine whether input is scalar issorted Determine if array is sorted isvector Determine whether input is vector length Length of largest array dimension max Maximum elements of an array min Minimum elements of an array ndims Number of array dimensions numel Number of array elements ones Create array of all ones permute Permute array dimensions repelem Repeat copies of array elements repmat Repeat copies of array reshape Reshape array size Array size sort Sort array elements squeeze Remove dimensions of length 1 transpose Transpose vector or matrix vertcat Vertical concatenation for heterogeneous arrays zeros Create array of all zeros
 area Area of 2-D alpha shape bar Bar graph barh Horizontal bar graph fplot Plot expression or function line Create primitive line plot 2-D line plot plot3 3-D point or line plot plotmatrix Scatter plot matrix rgbplot Plot colormap scatter Scatter plot scatter3 3-D scatter plot xlim Set or query x-axis limits ylim Set or query y-axis limits zlim Set or query z-axis limits
 activations (Deep Learning Toolbox) Compute deep learning network layer activations classify (Deep Learning Toolbox) Classify data using a trained deep learning neural network predict (Deep Learning Toolbox) Reconstruct the inputs using trained autoencoder predictAndUpdateState (Deep Learning Toolbox) Predict responses using a trained recurrent neural network and update the network state

To display a list of supported functions, at the MATLAB Command Window, enter:

methods(half(1))

## Examples

collapse all

To cast a double-precision number to half precision, use the half function.

a = half(pi)
a =

half

3.1406

You can also use the half function to cast an existing variable to half-precision.

v = single(magic(3))
v = 3x3 single matrix

8     1     6
3     5     7
4     9     2

a = half(v)
a =

3x3 half matrix

8     1     6
3     5     7
4     9     2