MATLAB repmat()函数的使用
一、语法
B = repmat(A,n)
B = repmat(A,r1,...,rN)
B = repmat(A,r)
二、说明
B = repmat(A,n)返回一个数组,该数据在其行维度和列维度包含A的n个副本。A为矩阵时,B大小为size(A)*n。
B = repmat(A,r1,…,rN)指定一个标量列表r1,…, rN,这些标量用于描述A的副本在每个维度中如何排列。当A具有N维时,B的大小为size(A).*[r1…rN]。例如:repmat([1 2; 3 4],2,3)返回一个4x6的矩阵。
B = repmat(A,r)使用行向量r指定重复方案。例如,repmat(A,[2,3])与repmat(A,2,3)返回相同的结果。
三、示例
使用相同的元素初始化矩阵
创建一个所有元素的值均为10的3x2的矩阵。
A = repmat(10, 3, 2)
% 输出
A =
10 10
10 10
10 10
方块格式
将矩阵副本重复到2x2块排列中。
A = diag([100 200 300])
% 输出
A =
100 0 0
0 200 0
0 0 300
B = repmat(A, 2)
% 输出
B =
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
矩形块格式
将矩阵副本重复到2x3块排列中。
A = diag([100 200 300])
% 输出
A =
100 0 0
0 200 0
0 0 300
B = repmat(A,2,3)
% 输出
B =
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
三维块数组
将矩阵副本重复到2x2x3块排列中。
A = [1 2; 3 4]
% 输出
A =
1 2
3 4
B = repmat(A,[2 3 2])
% 输出
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 =
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 =
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
重复表格副本并将其加入到2x3块格式中。
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重复表项,并将一个数字追加到新变量名称后面。