有趣的matlab

时间:2015-02-12 17:25:07

标签: arrays matlab optimization

我想生成一个这样的数组:

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中的单行代码完成吗?我相信有几个答案。请不要循环。

2 个答案:

答案 0 :(得分:8)

使用reshaperepmat

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)