paddata
说明
使用一个或多个名称-值参量指定用于填充的其他参数。例如,B = paddata(A,m,Name=Value)paddata(A,m,Pattern="circular") 通过循环重复输入数据进行填充。
示例
创建一个四元素列向量,并将该向量填充到六个元素。默认情况下,paddata 函数向数值向量的尾部大小添加零。
A = [1; 3; 5; 7]; B = paddata(A,6)
B = 6×1
1
3
5
7
0
0
将一个行向量填充到六个元素。
A2 = [2 4 6 8]; B2 = paddata(A2,6)
B2 = 1×6
2 4 6 8 0 0
创建两个长度不同的向量。
A1 = [2; 8; 3; 5]; A2 = [9; 4; 6; 2; 7; 7; 0];
确定较长向量的长度。
szA1 = size(A1,1); szA2 = size(A2,1); [m,idx] = max([szA1 szA2])
m = 7
idx = 2
填充较短向量以匹配较长向量的长度。
B1 = paddata(A1,m)
B1 = 7×1
2
8
3
5
0
0
0
您可以串联具有相同长度的向量。使用这两个向量创建一个矩阵。
C = [B1 A2]
C = 7×2
2 9
8 4
3 6
5 2
0 7
0 7
0 0
创建一个 3×3 矩阵。通过向每列添加一个元素,将列填充到长度为 4。通过向每行添加三个元素,将行填充到长度为 6。
A = [1 3 5; 2 4 6; 7 8 10]
A = 3×3
1 3 5
2 4 6
7 8 10
B = paddata(A,[4 6])
B = 4×6
1 3 5 0 0 0
2 4 6 0 0 0
7 8 10 0 0 0
0 0 0 0 0 0
创建一个 3×3 矩阵作为三维数组中的第一页。通过沿第三个维度填充维度,向数组添加第二个页。
A = [1 3 5; 2 4 6; 7 8 10]
A = 3×3
1 3 5
2 4 6
7 8 10
B = paddata(A,2,Dimension=3)
B =
B(:,:,1) =
1 3 5
2 4 6
7 8 10
B(:,:,2) =
0 0 0
0 0 0
0 0 0
创建一个包含不同数据类型的变量的时间表。
num = [10; 20; 30]; cat = categorical(["A"; "B"; "A"]); log = logical([1; 0; 1]); str = ["Text 1"; "Text 2"; "Text 3"]; TT = timetable(num,cat,log,str,Timestep=hours(2))
TT=3×4 timetable
Time num cat log str
____ ___ ___ _____ ________
0 hr 10 A true "Text 1"
2 hr 20 B false "Text 2"
4 hr 30 A true "Text 3"
填充每个时间表变量。paddata 对每个变量的数据类型使用默认填充值。每种数据类型的默认填充值与 MATLAB® 在为表的最后一行之外赋值时创建的元素的值相同。
B1 = paddata(TT,6)
B1=6×4 timetable
Time num cat log str
_____ ___ ___________ _____ _________
0 hr 10 A true "Text 1"
2 hr 20 B false "Text 2"
4 hr 30 A true "Text 3"
6 hr 0 <undefined> false <missing>
8 hr 0 <undefined> false <missing>
10 hr 0 <undefined> false <missing>
为要添加到每个时间表变量的元素指定自定义填充值。paddata 会扩展行时间,因此无需为行时间指定填充值。
B2 = paddata(TT,6,FillValue={mean(num),"C",1,""})B2=6×4 timetable
Time num cat log str
_____ ___ ___ _____ ________
0 hr 10 A true "Text 1"
2 hr 20 B false "Text 2"
4 hr 30 A true "Text 3"
6 hr 20 C true ""
8 hr 20 C true ""
10 hr 20 C true ""
创建一个列向量,并通过重复前导元素来填充该向量。
A = [1; 3; 5; 7]; B = paddata(A,7,Pattern="edge",Side="leading")
B = 7×1
1
1
1
1
3
5
7
输入参数
输入数据,指定为向量、矩阵、多维数组、表、时间表、元胞数组或结构体数组。
注意
如果 A 是元胞数组,则 paddata 更改整个数组的大小。它不会更改数组中每个元胞的大小。使用 cellfun 函数将 paddata 应用于元胞数组中的每个元胞。
沿运算维度填充后的数据大小,指定为非负整数标量或非负整数向量。每个元素表示填充后的数据在运算维度中的大小。
如果
m大于A在运算维度中的大小,则paddata添加元素。如果
m小于或等于A在运算维度上的大小,则paddata返回输入数据而不添加元素。
名称-值参数
将可选参量对组指定为 Name1=Value1,...,NameN=ValueN,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
示例: B = paddata(A,m,Pattern="circular")
沿其运算的维度,指定为 "auto"、正整数标量或正整数向量。每个元素代表输入数据的一个维度。
如果 Dimension 是 "auto",则运算维度取决于输入参量:
如果
m是标量且A是数组,则运算维度是其大小不等于 1 的第一个维度。如果
m是向量,则运算维度是1:numel(m)。如果
A是表或时间表,则运算维度是1,并且运算对每个表或时间表变量分别进行。
添加元素的填充值,指定为标量、元胞数组或标量结构体。
每个类的默认填充值与 MATLAB® 在向量末尾之外赋值时创建的元素值相同。例如,数值输入数据的默认填充值为 0。
如果
A是数组,则标量FillValue指示在填充期间添加到A的所有元素的值。如果
A是表或时间表,则元胞数组FillValue指示添加到每个表或时间表变量的元素的不同填充值。元胞数组中的元胞数量必须与表或时间表变量的数量匹配。如果A是具有行名称的表,则paddata使用默认行名称(如RowN)扩展行名称;它不使用FillValue填充行名称。如果A是带行时间的时间表,则paddata扩展行时间;它不使用FillValue填充行时间。如果
A是结构体数组,则标量结构体FillValue指示输入数据中每个字段的不同填充值。FillValue中的字段数量和名称必须与输入数据中的字段数量和名称匹配。
如果指定 FillValue,则无法指定 Pattern。
添加元素的模式,指定为表中的模式名称之一。该模式会重复进行,直到调整大小后的数据具有 m 大小。
如果
A是带行名称的表,则paddata使用默认行名称(如RowN)扩展行名称;它不使用Pattern添加到行名称。如果
A是带行时间的时间表,则paddata扩展行时间;它不使用Pattern添加到行时间。
如果指定 Pattern,则无法指定 FillValue。
下表列出了模式名称及其描述,以及用示例说明每个模式如何填充输入数据 A = [1 2 3]。
| 模式名称 | 描述 | 填充后的数据 |
|---|---|---|
"constant" | 使用由 A 的数据类型确定的默认值填充数据。 |
|
"edge" | 通过将前导和尾随端点复制为常量填充值来填充数据。 |
|
"circular" | 通过循环重复输入数据来填充数据。 |
|
"flip" | 通过对称翻转输入数据来填充数据。端点会被复制。 |
|
"reflect" | 通过反射输入数据来填充数据。端点不会被复制。 |
|
用于填充的输入数据的一侧,指定为以下值之一:
"trailing"- 用尾部元素填充A。"leading"- 用前导元素填充A。"both"- 在两侧填充A。如果在运算维度中要添加的元素数为偶数,则在A的尾部和前导侧均匀地填充元素。如果在运算维度中要添加的元素数为奇数,则在A的尾部侧填充剩余元素。
提示
paddata仅向输入数据添加元素。如果您不想从数据中删除元素并且不要求调整大小后的数据匹配目标大小,则推荐使用paddata。如果您要求调整大小后的数据遵循m中的大小,则考虑使用resize函数,它也可以从您的数据中删除元素。
扩展功能
用法说明和限制:
代码生成支持以下数据类型:
numeric、logical、char、struct、duration、table和timetable。代码生成不支持对此函数使用稀疏矩阵输入。
如果输入是
table或timetable,则输出表中变量的数目在代码生成期间必须为常量。所有字符串或字符向量输入在代码生成期间必须为常量。
输入参量
m在代码生成时必须为固定大小。仅
numeric、logical和char输入允许空值。struct输入不支持使用默认FillValue。不支持具有
userDataproperty的自定义值的时间表。如果使用
Dimension名称-值参量,它在代码生成时必须为常量。对于输入参量
A:如果不指定维度,代码生成器将沿输入数组中具有可变大小或其大小不为 1 的第一个维度进行运算。如果此维度在代码生成时具有可变大小且在运行时为 1,则可能发生运行时错误。为避免此错误,请指定维度。
paddata 函数支持 GPU 数组输入,但有以下用法说明和限制:
输入数据
A必须为非稀疏数据。
有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
版本历史记录
在 R2023b 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- 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)




