私はMatlab R2011aを使用していますbsxfun
.R2009a以降のドキュメントによると、関数はマルチスレッドです(http://www.mathworks.com/help/techdoc/rn/br5k34y-1.html)。ただし、bsxfun を使用して、次のように行列を上限と下限と比較すると:
szS=10000;
szT=50000;
matT=rand(szT,3);
matS=rand(szS,3);
matSub=rand(szS,3);
matSlb=rand(szS,3);
for k=1:szS
matchID = all([bsxfun(@lt,matT,matSub(k,:)) bsxfun(@gt,matT,matSlb(k,:))],2);
end
タスク マネージャーでは、1 つのコアのみが使用されていることがわかります。私は何かを見逃していますか、それともこれは正常ですか?