MATLAB repmat()函数的使用

repmat函数是MATLAB中用于重复矩阵或数组的工具,它可以按指定的维度重复元素,创建块排列。例如,可以使用repmat创建所有元素为10的3x2矩阵,或者将矩阵重复到2x2或2x3的块格式中,甚至用于三维数组和表格的复制与堆叠。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值