我想生成一个这样的数组:
a = [1 1 2 2 3 3 4 4 5 5 6 6 ....]
%% or something like this
a = [1 1 1 .. ktimes 2 2 2 ... ktimes .....]
这可以通过MATLAB中的单行代码完成吗?我相信有几个答案。请不要循环。
答案 0 :(得分:8)
使用reshape
和repmat
reshape(repmat([1:6],k,1),1,[])
使用bsxfun
-
reshape(bsxfun(@plus,[1:6],zeros(k,1)),1,[])
关于热门需求 floor
-
floor(1:1/k:6+(k-1)/k)
答案 1 :(得分:8)
允许n = 6;
和k = 2;
。以下是一些替代方案:
kron(1:n,ones(1,k))
或
ceil(1/k:1/k:n)
或
double(uint64(1:n*k)/k)