A
とB
は 2 つのベクトルですlength(A) = length(B)
。A
とのすべての要素はまたは のB
いずれ0
か1
です。両方のベクトルが値を持つ位置の数を 1 行でカウントするにはどうすればよい1
ですか?
3 に答える
3
ソリューションのリストに追加するだけで、内積を行うこともできます。これにより、答えが得られます。
C=A'*B; %'# here I've assumed A & B are both column vectors
これは、投稿されたソリューションの中でも群を抜いて最速です。
タイミングテスト
A=round(rand(1e5,1));
B=round(rand(1e5,1));
内積
tic;for i=1:1e4;A'*B;end;toc %'SO formatting
Elapsed time is 0.621839 seconds.
んん
tic;for i=1:1e4;nnz(A&B);end;toc
Elapsed time is 14.572747 seconds.
sum(bitand())
tic;for i=1:1e4;sum(bitand(A,B));end;toc
Elapsed time is 64.111025 seconds.
于 2011-04-19T22:15:29.710 に答える
1
nnz
の代わりに使用しsum
て、非ゼロ要素の数を見つける多くの解決策の 1 つ:
nnz(A&B)
于 2011-04-19T21:56:44.000 に答える
0
これはそれを行う必要があります:
sum(bitand(A, B))
于 2011-04-19T21:43:25.683 に答える