连续添加所有1?

oce*_*800 3 matlab row sum matrix

我有一个非常大的矩阵(大约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]
Run Code Online (Sandbox Code Playgroud)

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

sum = [2
       2
       1
       1] 
Run Code Online (Sandbox Code Playgroud)

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

A. *_*nda 7

生成一个数组,其中1到处A都有1,其他地方为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
Run Code Online (Sandbox Code Playgroud)

然后你可以使用sum:

sum(A == 1, 2)
Run Code Online (Sandbox Code Playgroud)

  • @ ocean800,好吧,`sum`实际上和你想的完全一样.诀窍是使用[比较运算符`==`](https://www.mathworks.com/help/matlab/ref/eq.html).考虑接受我的回答. (3认同)