MATLAB:将值的出现加倍

时间:2014-09-25 23:39:28

标签: arrays matlab vector

很难解释所以我会展示一下我想做的事情:

x = [1 2 3 4 5]

我希望结果如下:

x = [1 1 2 2 3 3 4 4 5 5]

最好不使用for循环,但任何一种方法都是值得赞赏的。

感谢。

2 个答案:

答案 0 :(得分:4)

你也可以使用非常整洁的Kronecker张量积(kron函数):

x = kron(x,ones(1,2))

x =

     1     1     2     2     3     3     4     4     5     5

答案 1 :(得分:1)

如果您希望按此处对其进行排序,则可以执行以下操作:

y = sort([x x]);

或者,如果订单很重要:

y = reshape([x;x],[1,2*length(x)])