MATLAB 帮助中心
将变量转换为不同的数据类型
B = cast(A,newclass)
B = cast(A,like=p)
B = cast(A,newclass) 返回 A 中转换为数据类型(类)newclass 的数据,其中 newclass 是与 A 兼容的内置数据类型的名称。A 中任何超出 newclass 范围的值都会在 B 中截断到最近的端点。
B
A
newclass
将浮点数转换为整数时,cast 函数会将该数舍入为最接近的整数。如果浮点数的小数部分恰好为 0.5,则它朝偏离零的方向舍入到模更大的整数。
cast
示例
B = cast(A,like=p) 将 A 转换为与变量 p 相同的数据类型和稀疏性。B 的复/实性(实数或复数)由 A 和 p 共同确定。如果 A 和 p 均为实数,则 B 也是实数。否则,B 为复数。
p
全部折叠
将 int8 值转换为 uint8。
int8
uint8
定义一个由 8 位整数组成的向量。
a = int8([-5 5]);
将 a 转换为无符号 8 位整数。超出 uint8 范围的值 –5 被截断为 0。
a
b = cast(a,"uint8")
b = 1×2 uint8 row vector 0 5
创建一个由 32 位有符号整数组成的 1×3 向量。
A = int32([-12 34 56])
A = 1×3 int32 row vector -12 34 56
创建数据类型为 double 的复数。
double
p = 1+2i
p = 1.0000 + 2.0000i
将 A 转换为与变量 p 相同的数据类型和复/实性。
B = 1×3 complex -12.0000 + 0.0000i 34.0000 + 0.0000i 56.0000 + 0.0000i
创建一个由零组成的 2×3 矩阵,其元素是 32 位无符号整数。
A = zeros(2,3,"uint32")
A = 2×3 uint32 matrix 0 0 0 0 0 0
创建数据类型为 double 的 2×2 稀疏矩阵。
p = sparse(2,2,pi)
p = 2×2 sparse double matrix (1 nonzero) (2,2) 3.1416
将 A 转换为与变量 p 相同的数据类型和稀疏性。
B = 2×3 sparse double matrix All zero
输入数组,指定为标量、向量、矩阵或多维数组。A 的数据类型可以是内置数据类型,也可以是支持转换为指定的新数据类型的其他数据类型。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char 复数支持: 是
single
int16
int32
int64
uint16
uint32
uint64
logical
char
"single"
"double"
"int8"
"int16"
"int32"
"int64"
新建类,指定为 "single"、"double"、"int8"、"int16"、"int32"、"int64"、"uint8"、"uint16"、"uint32"、"uint64"、"logical" 或 "char"。
"uint8"
"uint16"
"uint32"
"uint64"
"logical"
"char"
原型,指定为标量、向量、矩阵或多维数组。p 的数据类型可以是内置数据类型,或是支持从输入数据类型转换的其他兼容数据类型。
输出数组,以标量、向量、矩阵或多维数组形式返回。
全部展开
用法说明和限制:
枚举输入在编译时必须具有标量值。不支持枚举数组。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
cast 函数支持 GPU 数组输入,但有以下用法说明和限制:
对于语法 B = cast(A,like=p),当且仅当 p 是 gpuArray 时,输出 B 才是 gpuArray。
gpuArray
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
对于语法 B = cast(A,like=p),当且仅当 p 是分布式数组时,输出 B 才是分布式数组。
有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
从 R2022a 开始,当 p 的数据类型是 MATLAB® 数值类型的子类时,语法 cast(A,like=p) 返回与原型 p 一致的输出。
cast(A,like=p)
例如,以下代码现在返回与 p 具有相同数据类型的输出:
p = matlab.lang.OnOffSwitchState.on; x = cast(1,like=p)
x = OnOffSwitchState enumeration on
x = 1
从 R2021b 开始,语法 cast(A,newclass) 的 newclass 输入参量区分大小写。您必须将 newclass 指定为表示新数据类型的字符向量或小写字母字符串。
cast(A,newclass)
例如,要将 double 值转换为 int8 数据类型,必须使用 cast(1.234,"int8")。命令 cast(1.234,"Int8") 现在会出错。
cast(1.234,"int8")
cast(1.234,"Int8")
class | typecast
class
typecast
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处