假如你已有矩阵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]
第一步:首先我们需要在matlab命令窗口中创建一个矩阵或数组,如我们可以在命令行窗口输入代码:1
A=[2 4 6 810 12 14 1618 20 22 2426 28 30 32]
即可创建一个4行4列的矩阵或数组,如下图所示。
第二步:关于矩阵转置,我们在矩阵或数组名称后面加一撇就可以了,如将上面的矩阵或数组A进行转置,我们在MATLAB中输入代码:
A'即可对矩阵或数组A进行转置,运行结果如下图所示。
第三步:如果我们需要对矩阵进行相加运算,两矩阵相加需维数一致,我们在MATLAB中输入代码:A+A
即可对两个矩阵进行相加,我们如果是想将矩阵中的每一个元素都加上一个数值我们在MATLAB命令行窗口中输入代码:A+5运行结果如下图所示
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
___________________________
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)