matlab输出相反数,在MATLAB将等于某一数列相反数的数据都赋值为0

2014-12-19 回答

你这里b和a的列维数不相同,我给你的b后面补了个零。另外,你这里a中没有和b相同的列,我给a后面补了个相同的列,便于测试。

追问:

您好,我不是需要将a中的一整列数据都赋值为0

是这样的,如果a中出现了b中的相反数,就单个赋值为0

如a中

第一行第二列、第一行第四列、第四行第一列、第四行第三列中的数据为0就行了

找出a中=-b的位置,然后再将位置上的数赋值为0,我MATLAB基础不太好,请问怎么写

追问:

您好,我不是需要将a中的一整列数据都赋值为0

是这样的,如果a中出现了b中的相反数,就单个赋值为0

如a中

第一行第二列、第一行第四列、第四行第一列、第四行第三列中的数据为0就行了

找出a中=-b的位置,然后再将位置上的数赋值为0,我MATLAB基础不太好,请问怎么写

追答:

不好意思,一直没看见。按照下面的程序写就行了

a=[1.10000000000000-0.5000000000000000.900000000000000-0.700000000000000;...

1.800000000000002.100000000000001.600000000000001.90000000000000;...

2.500000000000002.800000000000002.300000000000002.60000000000000;...

-0.500000000000000-0.200000000000000-0.600000000000000-0.400000000000000;...

0.2000000000000000.50000000000000000.300000000000000]

b=[0.5000000000000000.5000000000000000.6000000000000000.700000000000000 0]'

c = a; %将a给c

d = -b; %将-b给d

[line,row] = size(a); %获取a的行和列

for line_i = 1:line

for row_i = 1:row

temp = find(d == a(line_i,row_i)); %挨个判断c中的元素是否在d中出现

if(~isempty(temp)) %出现则赋值为零

c(line_i,row_i) = 0;

end

end

end

c

结果如下:

c =

1.1000 0 0.9000 0

1.8000 2.1000 1.6000 1.9000

2.5000 2.8000 2.3000 2.6000

0 -0.2000 0 -0.4000

0.2000 0.5000 0 0.3000

ps:你这个回答不让插入代码啊,这样看起来很不方便。下次提问的时候,记得选择可以插入代码。

追问:

谢谢您!可惜我之前已经采纳了其他人的答案还是要跟您说一声谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值