Сплайс матлаб векторов - PullRequest
       3

Сплайс матлаб векторов

4 голосов
/ 29 ноября 2010

У меня есть два вектора Matlab.Первый имеет N элементов, другой имеет k*N.Я знаю, что такое k, и я хочу объединить списки так, чтобы каждый элемент из первого вектора появлялся перед соответствующими элементами k из следующего вектора.Например:

k = 3
x = [1 5 9]
y = [2 3 4 6 7 8 10 11 12]

должны быть скомбинированы так:

z = [1 2 3 4 5 6 7 8 9 10 11 12]

Существует ли простой способ сделать это быстро?Мои х и у довольно большие.Спасибо!

1 Ответ

7 голосов
/ 29 ноября 2010

Вы можете сделать это с помощью некоторого изменения формы

k = 3
x = [1 5 9]
y = [2 3 4 6 7 8 10 11 12]

%# make a k-by-n array
z = reshape(y,k,[]);

%# catenate with x
z = [x;z];

%# reorder
z = z(:)'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...