拼接Matlab向量

4

我有两个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]

有没有快速的方法来做这个?我的x和y都很大。谢谢!
1个回答

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(:)'

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接