cast
将变量转换为不同的数据类型
说明
示例
转换数值数据类型
将 int8
值转换为 uint8
。
定义一个由 8 位整数组成的向量。
a = int8([-5 5]);
将 a
转换为无符号 8 位整数。超出 uint8
范围的值 –5 被截断为 0。
b = cast(a,"uint8")
b = 1x2 uint8 row vector
0 5
将向量转换为现有数据类型
创建一个由 32 位有符号整数组成的 1×3 向量。
A = int32([-12 34 56])
A = 1x3 int32 row vector
-12 34 56
创建数据类型为 double
的复数。
p = 1+2i
p = 1.0000 + 2.0000i
将 A
转换为与变量 p
相同的数据类型和复/实性。
B = cast(A,"like",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 = 2x3 uint32 matrix
0 0 0
0 0 0
创建数据类型为 double
的 2×2 稀疏矩阵。
p = sparse(2,2,pi)
p = (2,2) 3.1416
将 A
转换为与变量 p
相同的数据类型和稀疏性。
B = cast(A,"like",p)
B = All zero sparse: 2x3
输入参数
A
— 输入数组
标量 | 向量 | 矩阵 | 多维数组
输入数组,指定为标量、向量、矩阵或多维数组。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
复数支持: 是
newclass
— 新建类
"single"
| "double"
| "int8"
| "int16"
| "int32"
| "int64"
| "uint8"
| "uint16"
| "uint32"
| "uint64"
| "logical"
| "char"
新建类,指定为 "single"
、"double"
、"int8"
、"int16"
、"int32"
、"int64"
、"uint8"
、"uint16"
、"uint32"
、"uint64"
、"logical"
或 "char"
。
p
— 原型
标量 | 向量 | 矩阵 | 多维数组
原型,指定为标量、向量、矩阵或多维数组。
数据类型: single
| double
| int8
| int16
| int32
| int64
| uint8
| uint16
| uint32
| uint64
| logical
| char
复数支持: 是
扩展功能
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
用法说明和限制:
枚举输入在编译时必须具有标量值。不支持枚举数组。
GPU 代码生成
使用 GPU Coder™ 为 NVIDIA® GPU 生成 CUDA® 代码。
用法说明和限制:
枚举输入在编译时必须具有标量值。不支持枚举数组。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
用法说明和限制:
对于语法
B = cast(A,'like',p)
,当且仅当p
是gpuArray
时,输出B
才是gpuArray
。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
用法说明和限制:
对于语法
B = cast(A,'like',p)
,当且仅当p
是分布式数组时,输出B
才是分布式数组。
有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出R2022a: cast
为 MATLAB 数值类型的子类返回一致的输出
从 R2022a 开始,当 p
的数据类型是 MATLAB® 数值类型的子类时,语法 cast(A,"like",p)
返回与原型 p
一致的输出。
例如,以下代码现在返回与 p
具有相同数据类型的输出:
p = matlab.lang.OnOffSwitchState.on;
x = cast(1,"like",p)
x = OnOffSwitchState enumeration on
logical
的 x = 1
。R2021b: newclass
输入参量区分大小写
从 R2021b 开始,语法 cast(A,newclass)
的 newclass
输入参量区分大小写。您必须将 newclass
指定为表示新数据类型的字符向量或小写字母字符串。
例如,要将 double
值转换为 int8
数据类型,必须使用 cast(1.234,"int8")
。命令 cast(1.234,"Int8")
现在会出错。
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)