构造半精度数值对象

您所在的位置:网站首页 matlab对数坐标图函数 构造半精度数值对象

构造半精度数值对象

#构造半精度数值对象| 来源: 网络整理| 查看: 265

half

构造半精度数值对象

自 R2018b 起

全页展开说明

使用 half 构造函数将半精度数据类型分配给数字或变量。半精度数据类型占用 16 位内存,但其浮点表示使其能够处理比相同大小的整数或定点数据类型更宽的动态范围。有关详细信息,请参阅Floating-Point Numbers (Fixed-Point Designer)和 What is Half Precision? (Fixed-Point Designer)。

有关支持使用半精度输入的代码生成的函数列表,请参阅Half Precision Code Generation Support。

创建对象 语法a = half(v)描述

a = half(v) 将 v 中的值转换为半精度。

输入参数

全部展开

v — 输入数组 标量 | 向量 | 矩阵 | 多维数组

输入数组,指定为标量、向量、矩阵或多维数组。

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical 复数支持: 是

对象函数

在 MATLAB® 中,使用半精度输入的仿真支持这些函数。MATLAB System object™ 支持半精度数据类型,而 MATLAB System (Simulink) 模块支持具有实数值的半精度数据类型。有关支持使用半精度输入的代码生成的函数列表,请参阅Half Precision Code Generation Support (Fixed-Point Designer)。

全部展开

数学和算术 abs绝对值和复数的模acos反余弦(以弧度为单位)acosh反双曲余弦asin反正弦(以弧度为单位)asinh反双曲正弦atan反正切(以弧度为单位)atan2四象限反正切atanh反双曲正切ceil向正无穷舍入conj复共轭conv卷积和多项式乘法conv2二维卷积cos以弧度为单位的参数的余弦cosh双曲余弦cospi准确计算 cos(X*pi)cumsum累积和dot点积exp指数expm1针对较小的 x 值正确计算 exp(x)-1fft快速傅里叶变换fft2二维快速傅里叶变换fftnN 维快速傅里叶变换fftshift将零频分量移到频谱中心fix向零舍入floor向负无穷舍入fma (Fixed-Point Designer)Multiply and add using fused multiply add approachhypot平方和的平方根(斜边)ifft快速傅里叶逆变换ifft2二维快速傅里叶逆变换ifftn多维快速傅里叶逆变换ifftshift逆零频平移imag复数的虚部ldivide数组左除log自然对数log10常用对数(以 10 为底)log1p针对较小的 x 值正确计算 log(1+x)log2以 2 为底的对数和浮点数分解mean数组的均值minus减法mldivide求解关于 x 的线性方程组 Ax = Bmod除后的余数(取模运算)mrdivide求解关于 x 的线性方程组 xA = Bmtimes矩阵乘法plus添加数字,追加字符串pow10 (Fixed-Point Designer)以 10 为底的幂和缩放半精度数pow2浮点数的以 2 为底的幂运算和缩放power按元素求幂prod数组元素的乘积rdivide数组右除real复数的实部rem除后的余数round舍入至最近的小数或整数rsqrt (Fixed-Point Designer)Reciprocal square rootsignSign 函数(符号函数)sin参数的正弦,以弧度为单位sinh双曲正弦sinpi准确地计算 sin(X*pi)sqrt平方根sum数组元素总和tan以弧度表示的参数的正切tanh双曲正切times乘法uminus一元减法uplus一元加法 数据类型 allfiniteDetermine if all array elements are finiteanynanDetermine if any array element is NaNcast将变量转换为不同的数据类型cell元胞数组double双精度数组eps浮点相对精度flintmax浮点格式的最大连续整数Inf创建所有值均为 Inf 的数组int1616 位有符号整数数组int3232 位有符号整数数组int6464 位有符号整数数组int88 位有符号整数数组isa确定输入是否具有指定数据类型isfloat (Fixed-Point Designer)确定输入是否为浮点数据类型isinteger确定输入是否为整数数组islogical确定输入是否为逻辑数组isnan确定哪些数组元素为 NaNisnumeric确定输入是否为数值数组isobject确定输入是否为 MATLAB 对象isreal确定数组是否使用复数存储logical将数值转换为逻辑值NaN创建所有值均为 NaN 的数组realmax最大的正浮点数realmin最小标准浮点数single单精度数组storedInteger (Fixed-Point Designer)Stored integer value of fi objecttypecast在不更改基础数据的情况下转换数据类型uint1616 位无符号整数数组uint3232 位无符号整数数组uint6464 位无符号整数数组uint88 位无符号整数数组 关系和逻辑运算符 all确定所有的数组元素是为非零还是 trueand计算逻辑 ANDShort-Circuit ANDLogical AND with short-circuitingany确定是否有任何数组元素非零eq确定相等性ge决定大于或等于gt确定大于isequal确定数组相等性isequaln测试数组相等性,将 NaN 值视为相等le确定小于等于lt确定小于ne确定不相等性not计算逻辑 NOTor计算逻辑 ORShort-Circuit OR具有短路功能逻辑 OR 向量和矩阵运算 cat串联数组。cholCholesky 分解circshift循环平移数组colon向量创建、数组下标和 for 循环迭代complex创建复数数组ctranspose复共轭转置empty创建指定类的空数组eye单位矩阵flip翻转元素顺序fliplr将数组从左向右翻转flipud将数组从上向下翻转horzcatHorizontal concatenation for heterogeneous arrays iscolumn确定输入是否为列向量isempty确定数组是否为空isfinite确定哪些数组元素为有限isinf确定哪些数组元素为无限值ismatrix确定输入是否为矩阵isrow确定输入是否为行向量isscalar确定输入是否为标量issorted确定数组是否已排序isvector确定输入是否为向量length最大数组维度的长度luLU 矩阵分解max数组的最大元素min数组的最小元素ndims数组维度数目numel数组元素的数目ones创建全部为 1 的数组permute置换数组维度repelem重复数组元素副本repmat重复数组副本reshape重构数组size数组大小sort对数组元素排序squeeze删除长度为 1 的维度transpose转置向量或矩阵vertcatVertically concatenate for heterogeneous arrayszeros创建全零数组 图形 area二维 alpha 形状的面积bar条形图barh水平条形图fplot绘制表达式或函数line创建基本线条plot二维线图plot3三维点或线图plotmatrix散点图矩阵rgbplot绘制颜色图scatter散点图scatter3三维散点图xlim设置或查询 x 坐标轴范围ylim设置或查询 y 坐标轴范围zlim设置或查询 z 坐标轴范围 深度学习 activations (Deep Learning Toolbox)计算深度学习网络层激活classify (Deep Learning Toolbox)Classify data using trained deep learning neural networkpredict (Deep Learning Toolbox)Reconstruct the inputs using trained autoencoderpredictAndUpdateState (Deep Learning Toolbox)Predict responses using a trained recurrent neural network and update the network state

要显示支持函数的列表,请在 MATLAB 命令行窗口中输入:

methods(half(1))示例

全部折叠

将值转换为半精度

要将双精度数字转换为半精度,请使用 half 函数。

a = half(pi)a = half 3.1406

您也可以使用 half 函数将现有变量转换为半精度。

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 限制

不支持结合使用半精度和逻辑类型的算术运算。

有关其他用法说明和限制,请参阅Half Precision Code Generation Support。

扩展功能C/C++ 代码生成 使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

有关支持使用半精度输入的代码生成的函数列表和任何相关联的限制,请参阅Half Precision Code Generation Support。

如果您的目标硬件不支持半精度,则 half 将用作存储类型,算术运算以单精度执行。

有些函数仅将 half 用作存储类型,以单精度执行算术运算,不管目标硬件是什么。

对于深度学习代码生成,半精度输入会转换为单精度,计算以单精度执行。

在 MATLAB 中,isobject 函数以半精度输入返回 true。在生成的代码中,此函数返回 false。

GPU 代码生成 使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。

有关支持使用半精度输入的代码生成的函数列表和任何相关联的限制,请参阅Half Precision Code Generation Support。

要生成和执行具有半精度数据类型的代码,CUDA® 计算能力必须为 5.3 或更高。

要生成和执行具有半精度数据类型的代码,CUDA 工具包的版本必须为 10.0 或更高。

您必须将内存分配 (malloc) 模式设置为 'Discrete',才能生成 CUDA 代码。

GPU 代码生成不支持半精度复数数据类型。

如果您的目标硬件不支持半精度,则 half 将用作存储类型,算术运算以单精度执行。

有些函数仅将 half 用作存储类型,以单精度执行算术运算,不管目标硬件是什么。

对于深度学习代码生成,半精度输入会转换为单精度,计算以单精度执行。要将计算量减半,请在 coder.DeepLearningConfig 中将库目标设置为 'tensorrt',并将数据类型设置为 'FP16'。

在 MATLAB 中,isobject 函数以半精度输入返回 true。在生成的代码中,此函数返回 false。

版本历史记录

在 R2018b 中推出

另请参阅

single | double

主题Half Precision Code Generation SupportFloating-Point Numbers (Fixed-Point Designer)What is Half Precision? (Fixed-Point Designer)Generate Code for Sobel Edge Detection That Uses Half-Precision Data Type


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3