repmat全称是Replicate Matrix,意思是复制和平铺矩阵,是MATLAB里面的一个函数。语法有B=repmat(A,m,n),将矩阵A复制m×n块,即把A作为B的元素,B由m×n个A平铺而成。B的维数是[size(A,1)*m,size(A,2)*n]。

中文名

复制和平铺矩阵

外文名

repmat

类型

函数

别名

Replicate Matrix

释义

复制和平铺矩阵

隶属

MATLAB

语法

B = repmat(A,m,n)

B = repmat(A,[m n])

B = repmat(A,[m n p...])

实例

一、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,m,n)

将矩阵 A 复制 m×n 块,即把 A 作为 B 的元素,B 由 m×n 个 A 平铺而成。B 的维数是 [size(A,1)*m, size(A,2)*n] 。

>> A = [1,2;3,4]

A =

1 2

3 4

>> B = repmat(A,2,3)

B =

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 = repmat(A,[m n])

与 B = repmat(A,m,n) 用法一致。

三、B = repmat(A,[m n p...])

B 是由 m×n×p×… 个 A 平铺而成的高维数组。B 的维数是 [size(A,1)*m, size(A,2)*n, size(A,3)*p, ...] 。

>> A = eye(2,2)

A =

1 0

0 1

>> B = repmat(A,[2 3 2])

B(:,:,1) =

1 0 1 0 1 0

0 1 0 1 0 1

1 0 1 0 1 0

0 1 0 1 0 1

B(:,:,2) =

1 0 1 0 1 0

0 1 0 1 0 1

1 0 1 0 1 0

0 1 0 1 0 1

文献

MATLAB 7.11.0(R2010b) 帮助文档

说明

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 矩阵。

1 A = repmat(10,3,2)

1 A = 3×2 10 10 10 10 10 10

方块格式

将矩阵副本重复到 2×2 块排列中。

1 A = diag([100 200 300])

1 A = 3×3 100 0 0 0 200 0 0 0 300

1 B = repmat(A,2)

1 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

替代语法

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))

扩展功能

1、tall 数组

对行数太多而无法放入内存的数组进行计算。

2、C/C++ 代码生成

使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

3、GPU 数组

通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。

4、分布式数组

使用 Parallel Computing Toolbox™ 在群集的组合内存中对大型数组进行分区。