2011-04-19 3 views

Répondre

0

Cela devrait le faire:

sum(bitand(A, B)) 
1

L'une des nombreuses solutions, en utilisant nnz au lieu de sum pour trouver le nombre d'éléments non nuls:

nnz(A&B) 
3

Juste pour ajouter à la liste des solutions, vous pouvez également faire le point-produit, qui vous donnera la réponse:

C=A'*B;   %'# here I've assumed A & B are both column vectors 

C'est aussi de loin le le plus rapide des solutions postées.

test de synchronisation

A=round(rand(1e5,1)); 
B=round(rand(1e5,1)); 

Dot-produit

tic;for i=1:1e4;A'*B;end;toc              %'SO formatting 
Elapsed time is 0.621839 seconds. 

nnz

tic;for i=1:1e4;nnz(A&B);end;toc 
Elapsed time is 14.572747 seconds. 

su m (bitand())

tic;for i=1:1e4;sum(bitand(A,B));end;toc 
Elapsed time is 64.111025 seconds. 
Questions connexes