【发布时间】:2015-02-19 22:13:42
【问题描述】:
我有两个向量(实际上是 1xN 矩阵),它们的数字介于 [-1, 1] 之间。我想找出两个对应元素的符号不相同的实例数(sign(A[k]) ~= sign(B[k]))。有没有比只遍历两个向量更有效的方法?
【问题讨论】:
-
sum(sign(A) ~= sign(B))? -
如果你觉得好玩:
nnz(A.*B<0) -
@LuisMendo - 再来一个。这是相当模糊的:
A = (A + 1)/2; B = (B + 1) / 2; C = accumarray([A(:)+1 B(:)+1], 1); out = C(2) + C(3);远没有你和 Divakar 的效率高,但只是另一种完全炸毁这个 cmets 流的方式。 -
@LuisMendo - 呵呵,我知道。基本上我正在做的是我在
A和B之间计算[-1,1], [1,-1], [-1,-1]和[1,1]的组合,然后总结[-1,1]和[1,-1]的出现。 -
@rayryeng 当你有一把大锤子时,一切看起来都像钉子!
标签: matlab matrix vector matrix-multiplication