拼接matlab矢量

So8*_*res 4 matlab

我有两个matlab向量.第一个有N元素,另一个有元素k*N.我知道是什么k,我想拼接列表,使第一个向量中的每个元素出现k在下一个向量的相应元素之前.例如:

k = 3
x = [1 5 9]
y = [2 3 4 6 7 8 10 11 12]
Run Code Online (Sandbox Code Playgroud)

应该结合起来看起来像这样:

z = [1 2 3 4 5 6 7 8 9 10 11 12]
Run Code Online (Sandbox Code Playgroud)

有一种简单的方法可以快速完成吗?我的x和y都很大.谢谢!

Jon*_*nas 7

你可以通过一些重塑来做到这一点

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(:)'
Run Code Online (Sandbox Code Playgroud)