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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值