matlab中inf值可以换成0吗_MATLAB对于矩阵对角线置零、对角线置inf或NaN、对角线置任意数值的方法讨论...

对于小白的我来说,经常不知道在MATLAB里面怎么吧矩阵对角线置零,哎,所以不得不记录一下。

1.首先生成一组测试矩阵

A=magic(5);

得到一个5*5的矩阵:

A =

17 24 1 8 15

23 5 7 14 16

4 6 13 20 22

10 12 19 21 3

11 18 25 2 9

2.对角线置零

A=A-diag(diag(A));

得到如下矩阵:

A =

0 24 1 8 15

23 0 7 14 16

4 6 0 20 22

10 12 19 0 3

11 18 25 2 0

3.对角线置inf

对角线为正的inf

A=A+diag(inf+zeros(1,length(A)))

A =

Inf 24 1 8 15

23 Inf 7 14 16

4 6 Inf 20 22

10 12 19 Inf 3

11 18 25 2 Inf

对角线为负的inf

A=A-diag(inf+zeros(1,length(A)))

A =

-Inf 24 1 8 15

23 -Inf 7 14 16

4 6 -Inf 20 22

10 12 19 -Inf 3

11 18 25 2 -Inf

4.对角线置NaN

A=A+diag(NaN+zeros(1,length(A)))

或者是

A=A+diag(inf+zeros(1,length(A)))-diag(inf+zeros(1,length(A)))

都可以使得对角线为NaN

A =

NaN 24 1 8 15

23 NaN 7 14 16

4 6 NaN 20 22

10 12 19 NaN 3

11 18 25 2 NaN

5.对角线为任意数值,这个目前好像只能是双循环解决了

即i=j的时候就是对角线,x是我们想要赋值的任意值

for i=1:length(A)

for j=1:length(A)

if i==j

A=x;

end

end

end

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值