2014-09-25 2 views
-1

Это трудно объяснить, так что я буду показывать пример того, что я хотел бы сделать:MATLAB: удвоение вхождений значения

x = [1 2 3 4 5] 

Я хотел бы исход быть:

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

Предпочтительно без использования цикла for, но любой из этих методов был бы признателен.

Спасибо.

ответ

4

Вы также можете использовать тензорное произведение Кронекера (kron функция) который является довольно опрятным:

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

x = 

    1  1  2  2  3  3  4  4  5  5 
1

Если вы хотите отсортированы как вы здесь, вы можете сделать:

y = sort([x x]); 

в качестве альтернативы, если порядок имеет значение:

y = reshape([x;x],[1,2*length(x)]) 
Смежные вопросы