主要内容

stripdims

去除 dlarray 数据格式

说明

stripdims 函数从 dlarray 对象去除格式。

Y = stripdims(X) 返回去除所有维度标签后的 dlarray XY 是未格式化的 dlarray

示例

Y = stripdims(X,fmt) 额外按照格式 fmt 中的维度标签顺序,对 Y 的维度进行排序后输出。

示例

示例

全部折叠

创建一个格式化的 dlarray

dlX = dlarray(randn(3,2,1,2),'SSTU')
dlX = 
  3(S) × 2(S) × 1(T) × 2(U) dlarray


(:,:,1,1) =

    0.5377    0.8622
    1.8339    0.3188
   -2.2588   -1.3077


(:,:,1,2) =

   -0.4336    2.7694
    0.3426   -1.3499
    3.5784    3.0349

创建一个与 dlX 相同但不含任何维度标签的数组。

y = stripdims(dlX)
y = 
  3×2×1×2 dlarray


(:,:,1,1) =

    0.5377    0.8622
    1.8339    0.3188
   -2.2588   -1.3077


(:,:,1,2) =

   -0.4336    2.7694
    0.3426   -1.3499
    3.5784    3.0349

输入参数

全部折叠

输入数据,指定为格式化或未格式化的 dlarray 对象。

输出数据维度的描述,指定为字符串标量或字符向量。

数据格式是一个字符串,其中每个字符描述对应数据的维度的类型。

这些字符是:

  • "S" - 空间

  • "C" - 通道

  • "B" - 批量

  • "T" - 时间

  • "U" - 未指定

例如,假设有一个表示一批序列的数组,其中第一个、第二个和第三个维度分别对应于通道、观测值和时间步。您可以将该数据描述为具有格式 "CBT"(通道、批量、时间)。

如果 fmt 为空,或者 X 是未格式化的 dlarray 对象,则 Y 等于 X。否则,如果 X 是格式化的 dlarray 对象,则 stripdims 函数会自动对输出进行置换,使其维度按照 fmt 指定的顺序排列。在这种情况下,fmt 必须是 dims(X) 的某个置换的超集。

数据类型: char | string

输出参量

全部折叠

未格式化的 dlarray,以未格式化的 dlarray 对象形式返回,该对象与输入数组 X 相同,但不包含任何维度标签。如果 X 未格式化,则 Y = X

提示

  • 使用 stripdims 可确保 dlarray 的行为与同等大小的数值数组一致,避免因维度标签而产生任何特殊行为。

  • 调用 stripdims 后,ndims(X) 的值可能会减小,因为该函数会删除尾部单一维度。

    X = dlarray(ones(3,2), 'SCB');
    ndims(X)
    ans =
    
         3
    X = stripdims(X);
    ndims(X)
    ans =
    
         2

扩展功能

全部展开

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

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

版本历史记录

在 R2019b 中推出

另请参阅

| |