将新值插入数组中

时间:2013-10-16 16:20:57

标签: arrays matlab matrix insert vectorization

我目前有一个不同长度的列向量,我想在原始数组的不同点插入另一个列向量。即我想将我的新数组添加到旧数组的开头跳过10个地方再次添加我的新数组,跳过另外10个空格并再次添加我的新数组,依此类推,直到数组结束。我可以通过使用:

来做到这一点
OffsetSign = [1:30]';
Extra = [0;0;0;0;0];
OffsetSign =[Extra;OffsetSign(1:10);Extra;OffsetSign(11:20);Extra;OffsetSign(21:30)];

但是这不适合更长的阵列。有关更长阵列的简单方法的任何提示吗?

1 个答案:

答案 0 :(得分:4)

这是一种方法:

a = [1:30]';
b = [0;0;0;0;0];

a=reshape(a,10,[]);
b=repmat(b,[1 size(a,2)])
r=[b ; a]
r=r(:);

诀窍是将a重新整形为具有正确大小的列(每个10个元素)的矩阵。将b复制到此列的列中,连接两者并将矩阵展平为矢量...