给定两个参数:
n %number of repetitions per value
k %max value to repeat
我想创建一个大小为 n*k 的向量,它是 k 个大小为 n 的向量的串联,使得第 i 个向量在每个坐标处包含值 i。
示例:
n = 5;
k = 9;
期望的结果:
[1,1,1,1,1,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,5,5,5,5,5,6,6,6,6,6,7,7,7,7,7,8,8,8,8,8,9,9,9,9,9];
有没有一种优雅的方式来实现这一点?
谢谢!
最佳答案
有很多方法可以做到这一点:
方法一:
A=1:k
repelem(A',n,1)'
方法2:
A=1:k
kron(A', ones(n,1))'
方法3:
A=1:k
B=repmat(A, n, 1)
B(:)'
方法4:
A=1:k
B=ones(n,1)*A
B(:)'
关于MATLAB - 生成具有值序列的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37723039/