我有一个非常大的矩阵(大约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的新手,我非常感谢任何帮助,谢谢!
答案 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)