matlab中矩阵添加列

2025-02-25 22:21:53
推荐回答(2个)
回答1:

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 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
___________________________

回答2:

a为原矩阵
b=[0 0 0 0];
a=[a b];