Matlab 将变量复制到mat中
我有一个简单的任务要做Matlab 将变量复制到mat中,matlab,Matlab,我有一个简单的任务要做 p=1:5 p=[1 2 3 4 5] 我想把它复制很多次到一个矩阵中 e、 g.mat=一列中的零(2020,1) 但是,我想按顺序或索引复制此文件 index=(index + 4 ) 所以每5行我会得到1到5次,直到矩阵结束 垫子将填充从1到5的所有p元素,直到垫子柱状尺寸结束 举例来说 mat = [1 ;2; 3; 4; 5; 1; 2 ;3; 4; 5 1 ;2; 3; 4; 5; 1; 2 ;3; 4; 5........] 您可以简单地使用重复向
p=1:5
p=[1 2 3 4 5]
我想把它复制很多次到一个矩阵中
e、 g.mat=一列中的零(2020,1)
但是,我想按顺序或索引复制此文件
index=(index + 4 )
所以每5行我会得到1到5次,直到矩阵结束
垫子将填充从1到5的所有p元素,直到垫子柱状尺寸结束
举例来说
mat = [1 ;2; 3; 4; 5;
1; 2 ;3; 4; 5
1 ;2; 3; 4; 5;
1; 2 ;3; 4; 5........]
您可以简单地使用重复向量2020/5=404
次:
p = (1 : 5).';
mat = repmat(p, 404, 1);
这里的诀窍是将向量p
转换为列向量,然后只需沿行404次重复,就可以得到一个从1到5s重复的2020元素向量
如果我可以提出其他建议,您可以通过简单地声明从0到2019的向量来避免使用
repmat
,但然后使用mod
-除数为5的模运算符并加1,以确保可能的值从1到5,而不是从0到4:
mat = mod((0:2019).', 5) + 1;
您可以简单地使用重复向量2020/5=404
次:
p = (1 : 5).';
mat = repmat(p, 404, 1);
这里的诀窍是将向量p
转换为列向量,然后只需沿行404次重复,就可以得到一个从1到5s重复的2020元素向量
如果我可以提出其他建议,您可以通过简单地声明从0到2019的向量来避免使用
repmat
,但然后使用mod
-除数为5的模运算符并加1,以确保可能的值从1到5,而不是从0到4:
mat = mod((0:2019).', 5) + 1;