主要内容

underlyingType

R2026b

确定数组行为的基础数据的类型

描述

typename = underlyingType(X) 返回确定数组 X 行为的 MATLAB® 基础数据类型的名称。typename 以字符向量形式返回。

class 函数可用于确定变量的类。对于大多数类,underlyingType(X) 和 class(X) 返回相同的结果。但是,MATLAB 中某些类包含的基础数据的类型可能与 class 返回的类型不同。例如,这样的类包括 gpuArray (Parallel Computing Toolbox)、dlarray (Deep Learning Toolbox) 和 distributed (Parallel Computing Toolbox)。这些类的行为由它们包含的基础数据的类型确定。例如,包含 double 值的 distributed 数组的行为类似于 double 数组。

示例

示例

全部折叠

使用 underlyingType 和 class 测试几个变量的数据类型。

创建一个数据类型为 single 的数值变量,然后查询其类和基础数据类型。

x = single(5);
class(x)
ans =

    'single'
underlyingType(x)
ans =

    'single'

当 x 是基本数据类型(如 single、double 或 string)时,class(x) 和 underlyingType(x) 返回相同的结果。

接下来,创建一个包含两个变量的 table,然后查询其类和基础数据类型。

x = table([1; 2; 3],["a"; "b"; "c"]);
class(x)
ans =

    'table'
underlyingType(x)
ans =

    'table'

当 x 是容器数据类型(如 table、timetable 或 cell)时,命令 class(x) 和 underlyingType(x) 仍然返回相同的结果。这是因为容器数据类型不会根据基础数据类型更改其行为。

现在,创建一个 gpuArray(需要 Parallel Computing Toolbox™),然后查询其类和基础数据类型。

x = gpuArray(1:10);
class(x)
ans =

    'gpuArray'
underlyingType(x)
ans =

    'double'

当 x 所属的类可以包含能更改变量行为的基础数据(如 gpuArray、dlarray 或 distributed)时,命令 class(x) 和 underlyingType(x) 将返回不同的结果。在这种情况下,class(x) 返回变量所属类的名称,而 underlyingType(x) 返回基础数据的数据类型名称。

输入参数

全部折叠

输入数组或对象,指定为变量或表达式。

示例: underlyingType(gpuArray(double(1))) 返回 'double',因为 gpuArray 包含 double 类型的基础数据。

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

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

版本历史记录

在 R2020b 中推出