主要内容

trimdata

通过删除元素来裁剪数据

自 R2023b 起

说明

B = trimdata(A,m) 通过从 A 的尾部侧删除元素,将 A 裁剪到大小 m。例如,对于标量大小 m

  • 如果 A 是向量,则 trimdata(A,m)A 裁剪到长度 m

  • 如果 A 是矩阵、表或时间表,则 trimdata(A,m)A 裁剪为具有 m 行。

  • 如果 A 是多维数组,则 trimdata(A,m)A 沿其大小不等于 1 的第一个维度裁剪为由 m 指定的大小。

如果 m 大于或等于 A 在运算维度上的大小,则 trimdata 返回 A 的全部元素。

示例

B = trimdata(A,m,Name=Value) 使用一个或多个名称-值参量指定用于裁剪的其他参数。例如,trimdata(A,m,Side="leading") 通过从 A 的开头删除元素来进行裁剪。

示例

示例

全部折叠

创建一个四元素列向量,并将该向量裁剪为两个元素。默认情况下,trimdata 函数从向量的尾部侧删除元素。

A = [1; 3; 5; 7];
B = trimdata(A,2)
B = 2×1

     1
     3

将一个行向量裁剪为两个元素。

A2 = [2 4 6 8];
B2 = trimdata(A2,2)
B2 = 1×2

     2     4

创建两个长度不同的向量。

A1 = [2; 8; 3; 5];
A2 = [9; 4; 6; 2; 7; 7; 0];

确定较短向量的长度。

szA1 = size(A1,1);
szA2 = size(A2,1);
[m,idx] = min([szA1 szA2])
m = 
4
idx = 
1

裁剪较长向量以匹配较短向量的长度。

B2 = trimdata(A2,m)
B2 = 4×1

     9
     4
     6
     2

您可以串联具有相同长度的向量。使用这两个向量创建一个矩阵。

C = [A1 B2]
C = 4×2

     2     9
     8     4
     3     6
     5     2

创建一个 6×6 矩阵。通过从每列删除三个元素,将列裁剪到长度 3。通过从每行删除一个元素,将行裁剪到长度 5。

A = magic(6)
A = 6×6

    35     1     6    26    19    24
     3    32     7    21    23    25
    31     9     2    22    27    20
     8    28    33    17    10    15
    30     5    34    12    14    16
     4    36    29    13    18    11

B = trimdata(A,[3 5])
B = 3×5

    35     1     6    26    19
     3    32     7    21    23
    31     9     2    22    27

创建一个矩阵,并将每个矩阵行裁剪到长度 3。裁剪后的数据不包括输入矩阵的第四列、第五列和第六列中的数据。

A = magic(6)
A = 6×6

    35     1     6    26    19    24
     3    32     7    21    23    25
    31     9     2    22    27    20
     8    28    33    17    10    15
    30     5    34    12    14    16
     4    36    29    13    18    11

B = trimdata(A,3,Dimension=2)
B = 6×3

    35     1     6
     3    32     7
    31     9     2
     8    28    33
    30     5    34
     4    36    29

创建一个向量,其中前几个和后几个元素是不需要的。通过从前导和尾部侧删除元素来裁剪向量。由于要裁剪的元素数是奇数,trimdata 从向量的尾部侧删除的元素比从前导侧删除的元素多一个。

A = [0.1 1 2 3 3 2 1 0 NaN];
B = trimdata(A,6,Side="both")
B = 1×6

     1     2     3     3     2     1

输入参数

全部折叠

输入数据,指定为向量、矩阵、多维数组、表、时间表、元胞数组或结构体数组。

注意

如果 A 是元胞数组,则 trimdata 更改整个数组的大小。它不会更改数组中每个元胞的大小。使用 cellfun 函数将 trimdata 应用于元胞数组中的每个元胞。

沿运算维度裁剪后的数据大小,指定为非负整数标量或非负整数向量。每个元素表示裁剪后的数据在运算维度中的大小。

  • 如果 m 小于 A 在运算维度中的大小,则 trimdata 删除元素。

  • 如果 m 大于或等于 A 在运算维度上的大小,则 trimdata 返回输入数据而不删除元素。

名称-值参数

全部折叠

将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

示例: B = trimdata(A,m,Side="leading")

沿其运算的维度,指定为 "auto"、正整数标量或正整数向量。每个元素代表输入数据的一个维度。

如果 Dimension"auto",则运算维度取决于输入参量:

  • 如果 m 是标量且 A 是数组,则运算维度是其大小不等于 1 的第一个维度。

  • 如果 m 是向量,则运算维度是 1:numel(m)

  • 如果 A 是表或时间表,则运算维度是 1[1 2],具体取决于 m 中的元素数。

用于裁剪的输入数据的一侧,指定为以下值之一:

  • "trailing" - 裁剪 A 的尾部元素。

  • "leading" - 裁剪 A 的前导元素。

  • "both" - 在 A 的两侧裁剪。如果在运算维度中要删除的元素数为偶数,则在 A 的尾部和前导侧均匀地裁剪元素。如果在运算维度中要删除的元素数为奇数,则在 A 的尾部侧裁剪剩余元素。

提示

  • trimdata 仅从输入数据中删除元素。如果您不想添加额外数据并且不需要调整大小后的数据匹配目标大小,则推荐使用 trimdata。如果您要求调整大小后的数据遵循 m 中指定的大小,则考虑使用 resize 函数,它也可以向您的数据添加元素。

扩展功能

全部展开

版本历史记录

在 R2023b 中推出

另请参阅

| | | | |