假如你已有矩阵a如下:
a=[2
3
5
3
4
1
0
9
7]
这是一个3*3矩阵,那么当你想插入一行r=[1
2
3]时,那么可以这样做:
a=[ar]
这样a就变成了4*3的矩阵a如下:
a=[2
3
5
3
4
1
0
9
7
1
2
3]
假如你已有矩阵a为:
a=[2
3
5
3
4
1
0
9
7
1
2
3]
那么当你想插入一列
c=[1234]时,你可以这样做:
a=[a
c]
那么这是a就变成了
a=[2
3
5
1
3
4
1
2
0
9
7
3
1
2
3
4]
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
___________________________
有两种方法可以实现:转置矩阵:
b
=
a'
通用方法:reshape()函数
示例如下:
说明:reshape(a,m,n)
表示将矩阵a变换为m行n列的矩阵,通常用于矩阵形状的改变,例如下面代码将原来的1行4列矩阵转换为2行2列矩阵:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)