matlab中矩阵添加列
发布网友
发布时间:2022-05-06 10:53
我来回答
共2个回答
热心网友
时间:2022-06-29 19:52
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
___________________________
热心网友
时间:2022-06-29 19:53
a为原矩阵
b=[0 0 0 0];
a=[a b];