repelem
重复数组元素副本
语法
u = repelem(v,n)
B = repelem(A,r1,...,rN)
说明
u = repelem(v,n) 返回一个重复 v 中元素的向量,其中 v 是一个标量或向量。
-
如果 n 是一个标量,则 v 的每个元素都重复 n 次。u 的长度为 length(v)*n。
-
如果 n 为向量,则它必须与 v 具有相同的长度。n 的每个元素指定重复 v 对应元素的次数。
B = repelem(A,r1,...,rN) 将 A 中的每个元素依 r1,...,rN 进行重复,返回一个数组。r1,...,rN 中的每个元素必须是一个标量,或是与 A 在对应维度具有相同长度的向量。例如,如果 A 是一个矩阵,repelem(A,2,3) 则返回一个矩阵,其中包含 A 中每个元素的一个 2×3 块。
示例
重复向量元素
创建一个向量,并将其每个元素重复三次复制到一个新向量中。
v = [1 2 3 4];
u = repelem(v,3)
u = 1×12
1 1 1 2 2 2 3 3 3 4 4 4
将 v 的头两个元素重复两次,最后两个元素重复三次。
u = repelem(v,[2 2 3 3])
u = 1×10
1 1 2 2 3 3 3 4 4 4
重复矩阵元素
创建一个矩阵,并将其每个元素复制到一个新矩阵的 3×2 块中。
A = [1 2; 3 4]
A = 2×2
1 2
3 4
B = repelem(A,3,2)
B = 6×4
1 1 2 2
1 1 2 2
1 1 2 2
3 3 4 4
3 3 4 4
3 3 4 4
重复矩阵列
创建一个矩阵并将其列复制到新数组中,第一列重复两次,第二列重复三次。
A = [1 2; 3 4]
A = 2×2
1 2
3 4
B = repelem(A,1,[2 3])
B = 2×5
1 1 2 2 2
3 3 4 4 4
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) 返回一个 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
kron
Kronecker 张量积
语法
K = kron(A,B)
说明
K = kron(A,B) 返回矩阵 A 和 B 的 Kronecker 张量积。如果 A 是 m×n 矩阵,而 B 是 p×q 矩阵,则 kron(A,B) 是通过获取 A 元素与矩阵 B 元素之间的所有可能积而形成的一个 m*p×n*q 矩阵。
示例
重复矩阵元素
通过重复元素来扩展矩阵大小。
创建需要重复其元素的 2×2 矩阵和 2×3 矩阵。
A = [1 2 3; 4 5 6];
B = ones(2);
使用 kron 计算 Kronecker 张量积。
K = kron(A,B)
K = 4×6
1 1 2 2 3 3
1 1 2 2 3 3
4 4 5 5 6 6
4 4 5 5 6 6
结果为一个 4×6 分块矩阵。
总结
- repelem和kron可用于重复数组元素,其作用单元是数组中的元素.
- repmat重复数组,其作用单位是数组整体.
references:
[1]ww2.mathworks.cn/help/matlab…
[2]ww2.mathworks.cn/help/matlab…
[3]ww2.mathworks.cn/help/matlab…