Matlab中repmat函数的使用

目录

语法

说明

示例

使用相同的元素值初始化矩阵

方块格式

矩形块格式

三维块数组

垂直行向量堆栈

包含列向量的水平堆栈

表格块格式


         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 重复表项,并将一个数字追加到新变量名称后面

猜你喜欢

转载自blog.csdn.net/jk_101/article/details/110949672
今日推荐