主要内容

cast

将变量转换为不同的数据类型

说明

B = cast(A,newclass) 返回 A 中转换为数据类型(类)newclass 的数据,其中 newclass 是与 A 兼容的内置数据类型的名称。A 中任何超出 newclass 范围的值都会在 B 中截断到最近的端点。

将浮点数转换为整数时,cast 函数会将该数舍入为最接近的整数。如果浮点数的小数部分恰好为 0.5,则它朝偏离零的方向舍入到模更大的整数。

示例

B = cast(A,like=p)A 转换为与变量 p 相同的数据类型和稀疏性。B 的复/实性(实数或复数)由 Ap 共同确定。如果 Ap 均为实数,则 B 也是实数。否则,B 为复数。

示例

示例

全部折叠

int8 值转换为 uint8

定义一个由 8 位整数组成的向量。

a = int8([-5 5]);

a 转换为无符号 8 位整数。超出 uint8 范围的值 –5 被截断为 0。

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 的复数。

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 = 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 = cast(A,like=p)
B = 2×3 sparse double matrix
   All zero

输入参数

全部折叠

输入数组,指定为标量、向量、矩阵或多维数组。A 的数据类型可以是内置数据类型,也可以是支持转换为指定的新数据类型的其他数据类型。

数据类型: 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
复数支持:

输出参量

全部折叠

输出数组,以标量、向量、矩阵或多维数组形式返回。

扩展功能

全部展开

版本历史记录

在 R2006a 之前推出

全部展开