文档帮助中心文档
在不改变基础数据的情况下转换数据类型
Y =定型(X,类型)
例子
Y=定型(X,类型)的位模式X指定的数据类型类型在不改变底层数据的情况下。X必须是一个完整的非复数数值标量或向量。
Y=定型(X,类型)
Y
X
类型
全部折叠
将一个整数转换为具有相同存储大小的无符号整数。
X = int16 (1)
X =int16-1
Y =定型(X,“uint16”)
Y =uint1665535
显示十六进制表示法中的位模式。使用。转换数据类型定型不改变底层数据。
定型
格式十六进制X
X =int16飞行符
Y =uint16飞行符
创建一个由8位整数组成的1 × 4向量。
X = int8([77 60 43 26])
X =1x4 int8行向量77 60 43 26
将使用4字节(32位)存储的4个8位整数转换为也使用4字节存储的单精度数字。
Y =定型(X,“单一”)
Y =单3.5411 e-23
显示十六进制表示法中的位模式。在十六进制表示法中,1字节(8位)由两位数字表示。的定型函数在不修改数据的情况下重新排列位模式。
Y =单1 a2b3c4d
创建一个32位无符号整数的1 × 3向量。
X = uint32([1 255 256])
X =1x3 uint32行向量1 255 256
投X转换为8位无符号整数定型.每个32位值被分成4个8位段。在小端系统上运行这段代码会产生以下结果。
Y =定型(X,“uint8”)
Y =1x12 uint8行向量1 0 0 0 255 0 0 0 0 1 0 0 0
第三个要素X, 256,超过了8位所能容纳的最大值。Y(9)中的转换值因此溢出到Y(10)。
Y (9:12)
ans =1x4 uint8行向量0 1 0 0
您可以转换Y返回到32位无符号整数而不改变底层数据。
X2 =定型(Y,“uint32”)
X2 =1x3 uint32行向量1 255 256
比较输出定型的输出投来看看这两个函数之间的区别。
投
Z =投(X,“uint8”)
Z =1x3 uint8行向量1 255 255
X2 =投(Z,“uint32”)
X2 =1x3 uint32行向量1 255 255
从较小的数据类型强制转换整数(uint8)变成一个更大的(uint16).使用十六进制表示来显示位模式的重排。的定型函数以小端样式返回输出,将输入数据的4个8位段组合起来生成两个16位段。
uint8
uint16
格式十六进制X = uint8([44 55 66 77])
X =1x4 uint8行向量44 55 66 77
Y =1x2 uint16行向量14124 19778
属性可以将小端输出转换为大端输出(反之亦然)swapbytes函数。
swapbytes
Y = swapbytes(定型(X,“uint16”))
Y =1x2 uint16行向量11319 16973
输入数组,指定为标量或向量。
数据类型:单|双|int8|int16|int32|int64|uint8|uint16|uint32|uint64
单
双
int8
int16
int32
int64
uint32
uint64
“单一”
“双”
“int8”
“int16”
“int32”
“int64”
“uint8”
“uint16”
“uint32”
“uint64”
新数据类型,指定为“单一”,“双”,“int8”,“int16”,“int32”,“int64”,“uint8”,“uint16”,“uint32”,或“uint64”.
的位大小类型是n的每个元素的位大小的两倍X,然后X必须包含的倍数n要转换的元素X转换为数据类型类型.否则,MATLAB®抛出一个错误。
n
定型不同于MATLAB投函数,因为它不改变输入数据。定型总是在输出中返回相同的字节数Y在输入中X.例如,将16位整数1000转换为uint8与定型返回两个8位段(3和232)中的完整16位,从而保持原始值(3*256 + 232 = 1000)。的投函数则将输入值截断为255。
的格式定型根据您使用的系统,输出可能不同。一些计算机系统从最低有效字节开始存储数据(这种顺序称为低位优先),而另一些则从最有效的字节开始(称为大端法).你可以使用swapbytes函数反转字节顺序,从小端到大端(反之亦然)。
使用注意事项及限制:
数据类型参数的值必须是小写的。
当你使用定型中继承的输入端口数据类型MATLAB函数块,软件可以抛出大小错误。要避免此错误,请显式指定块输入端口数据类型。
整数输入或结果类必须直接映射到目标硬件上的C类型。
输入必须是变长向量或固定大小向量。看到工具箱函数代码生成的可变大小限制(MATLAB编码器).
输出向量总是与输入向量具有相同的方向。
输入必须是变长向量或固定大小向量。
backgroundPool
ThreadPool
这个函数完全支持基于线程的环境。万博1manbetx有关更多信息,请参见在线程环境中运行MATLAB函数.
该功能完全支持GPU阵列。万博1manbetx有关更多信息,请参见在GPU上运行MATLAB函数(并行计算工具箱).
该函数完全支持分布式数组。万博1manbetx有关更多信息,请参见使用分布式数组运行MATLAB函数(并行计算工具箱).
投|类|swapbytes
类
您有这个示例的修改版本。您想打开这个示例与您的编辑吗?
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站,在那里获得翻译的内容,并看到当地的活动和优惠。根据您的位置,我们建议您选择:.
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。
与当地办事处联系