我有一个简单的任务
p=1:5
p=[1 2 3 4 5]
我想多次复制到一个矩阵
e.g。 mat =零(2020,1)在一栏
但是,我想按顺序或索引
复制它index=(index + 4 )
所以每5行我会得到1到5次,直到矩阵结束
mat将填充从1到5的p的所有元素,直到大小mat列结束
例如
mat = [1 ;2; 3; 4; 5;
1; 2 ;3; 4; 5
1 ;2; 3; 4; 5;
1; 2 ;3; 4; 5........]
答案 0 :(得分:2)
您只需使用repmat
重复向量2020 / 5 = 404
次:
p = (1 : 5).';
mat = repmat(p, 404, 1);
这里的诀窍是转置你的矢量p
,使其成为列矢量,然后你只需要沿着行重复404次,得到一个重复1到5的2020元素矢量。 / p>
如果我可以推荐别的东西,你可以通过简单地声明从0到2019的向量来避免使用repmat
,然后使用mod
- 除数为5且加1的模数运算符确保您将获得从1到5而不是0到4的可能值:
mat = mod((0:2019).', 5) + 1;