连续添加所有1个?

时间:2015-05-27 23:39:45

标签: matlab matrix sum row

我有一个非常大的矩阵(大约4000000x2),它在整个矩阵中撒了1个。我想要做的是我只想在一行中添加所有1。

例如,如果我有这样的矩阵:

A = [0 0 4 1 0 0 1
     1 0 5 0 7 0 1 
     5 6 0 8 1 0 6 
     0 9 5 1 0 0 0]

有没有办法总结所有的1行?例如,这里是:

sum = [2
       2
       1
       1] 

我知道如果你想要整行,你可以使用sum(A,2)。但是matlab中是否有一种方法可以将所有特定数字相加?我是matlab的新手,我非常感谢任何帮助,谢谢!

1 个答案:

答案 0 :(得分:7)

生成一个数组,其中1为A,其中1为0,其他地方为0:

>> A == 1
ans =
     0     0     0     1     0     0     1
     1     0     0     0     0     0     1
     0     0     0     0     1     0     0
     0     0     0     1     0     0     0

然后你可以使用sum

sum(A == 1, 2)