将所有的 1 连续相加?
Adding all the 1's in a 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 的数组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
那么你可以直接使用sum
:
sum(A == 1, 2)
我有一个非常大的矩阵(大约 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 的数组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
那么你可以直接使用sum
:
sum(A == 1, 2)