matlab中矩阵添加列

我的问题是,如果一个矩阵是1行n列的,如10101010101010101010101010101010,现在我要把它变成1010101010101010 000010101010101010100000,用matlab怎么实现?实际就是每16位添加4个0。
谢谢~~~~~~~~~~~~
能不能用for循环来完成啊?!它实际就是CRC的添零计算!急~~~ 假如是1行32列的矩阵,变换后应该为1行40列

b=reshape(a,[],16)
这句转换这个数组为16列n行的矩阵
然后
b(:,17:20)=0
就是把后面的列变成0
a=reshape(b',1,[])
还原为数组

前提是n是16的倍数,如果不是,看最下面代码

————————
b=reshape(a,[],16)
b(:,17:20)=0
a=reshape(b',1,[])
———————
未经完全测试,有问题请指正。

还有一个办法
先求出总共要加多少次4个0

num =floor(n/16)
然后
提前制造一个全部是0的数组
b = zeros(1,n+num*4) %这里就是说b的大小应该等于n加上多少次加4个0
c=0
for i=0:16:n
b(i+c:i+16+c) = a(i:i+16)
c=c+4
end

________________________________
a= ones(1,36)
n=length(a)

num =floor(n/16)

b = zeros(1,n+num*4)

c=0
for i=0:16:n
if i <n-mod(n,16)
b(i+1+c:i+16+c) = a(i+1:i+16)
c=c+4
else
b(i+1+c:end) = a(i+1:end)
end
end
___________________________
温馨提示:答案为网友推荐,仅供参考
第1个回答  2010-05-20
a为原矩阵
b=[0 0 0 0];
a=[a b];
相似回答