目录
repmat函数是重复数组副本。
语法
B = repmat(A,n)
B = repmat(A,r1,...,rN)
B = repmat(A,r)
提示
-
要通过由 1 构成的数组的输入形成张量积来构建块数组,请使用kron 。例如,要将行向量
A = 1:3
垂直堆叠四次,可以使用B = kron(A,ones(4,1))
。 -
要一次性创建块数组并执行二进制运算,请使用bsxfun 。在某些情况下,
bsxfun
提供一个更简单、内存效率更高的解。例如,要添加向量A = 1:5
和B = (1:10)'
以生成 10×5 数组,请使用bsxfun(@plus,A,B)
而非repmat(A,10,1) + repmat(B,1,5)
。 -
当
A
为特定类型的标量时,可使用其他函数获得与repmat
一样的结果。repmat 语法 等效替代方法 repmat(NaN,m,n)
NaN(m,n)
repmat(single(inf),m,n)
inf(m,n,'single')
repmat(int8(0),m,n)
zeros(m,n,'int8')
repmat(uint32(1),m,n)
ones(m,n,'uint32')
repmat(eps,m,n)
eps(ones(m,n))
说明
B = repmat(A,n)
返回一个数组,该数组在其行维度和列维度包含A的n个副本。A为矩阵时,B大小为 size(A)*n
。
B = repmat(A,r1,r2,...,rN)
指定一个标量列表 r1,..,rN
,这些标量用于描述 A
的副本在每个维度中如何排列。当 A
具有 N
维时,B
的大小为 size(A).*[r1...rN]
。例如:repmat([1 2; 3 4],2,3)
返回一个 4×6 的矩阵。
B = repmat(A,r)
使用行向量 r
指定重复方案。例如,repmat(A,[2 3])
与 repmat(A,2,3)
返回相同的结果。
示例
使用相同的元素值初始化矩阵
创建一个所有元素的值均为 10 的 3×2 矩阵。
A = repmat(10,3,2)
A = 3×2
10 10
10 10
10 10
方块格式
将矩阵副本重复到 2×2 块排列中。
A = diag([100 200 300])
A = 3×3
100 0 0
0 200 0
0 0 300
B = repmat(A,2)
B = 6×6
100 0 0 100 0 0
0 200 0 0 200 0
0 0 300 0 0 300
100 0 0 100 0 0
0 200 0 0 200 0
0 0 300 0 0 300
矩形块格式
将矩阵副本重复到 2×3 块排列中。
A = diag([100 200 300])
A = 3×3
100 0 0
0 200 0
0 0 300
B = repmat(A,2,3)
B = 6×9
100 0 0 100 0 0 100 0 0
0 200 0 0 200 0 0 200 0
0 0 300 0 0 300 0 0 300
100 0 0 100 0 0 100 0 0
0 200 0 0 200 0 0 200 0
0 0 300 0 0 300 0 0 300
三维块数组
将矩阵副本重复到 2×2×3 块排列中。
A = [1 2; 3 4]
A = 2×2
1 2
3 4
B = repmat(A,[2 3 2])
B =
B(:,:,1) =
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
B(:,:,2) =
1 2 1 2 1 2
3 4 3 4 3 4
1 2 1 2 1 2
3 4 3 4 3 4
垂直行向量堆栈
垂直堆叠行向量四次。
A = 1:4;
B = repmat(A,4,1)
B = 4×4
1 2 3 4
1 2 3 4
1 2 3 4
1 2 3 4
包含列向量的水平堆栈
水平堆叠列向量四次。
A = (1:3)';
B = repmat(A,1,4)
B = 3×4
1 1 1 1
2 2 2 2
3 3 3 3
表格块格式
使用 Age
和 Height
创建表。
A = table([39; 26],[70; 63],'VariableNames',{'Age' 'Height'})
A=2×2 table
Age Height
___ ______
39 70
26 63
重复表格副本并将其加入到 2×3 块格式中。
B = repmat(A,2,3)
B=4×6 table
Age Height Age_1 Height_1 Age_2 Height_2
___ ______ _____ ________ _____ ________
39 70 39 70 39 70
26 63 26 63 26 63
39 70 39 70 39 70
26 63 26 63 26 63
repmat
重复表项,并将一个数字追加到新变量名称后面