1

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

OffsetSign = [1:30]';
Extra = [0;0;0;0;0];
OffsetSign =[Extra;OffsetSign(1:10);Extra;OffsetSign(11:20);Extra;OffsetSign(21:30)];

但是,这不适用于更长的阵列。关于为更长的阵列执行此操作的简单方法的任何提示?

4

1 回答 1

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到此列数,将两者连接起来并将矩阵展平为向量...

于 2013-10-16T16:39:27.377 回答