matlab中如何给已有矩阵插入一行或一列值

matlab中如何给已有矩阵插入一行或一列值,第1张

举例来说吧

假如你已有矩阵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

___________________________


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/11317234.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存