次のように、100x100 の論理行列に ~100 万の値を割り当てようとしています。
CC(Labels,LabelsXplusOne) = true;
ここで、CC は 100x100 論理であり、Labels、LabelsXplusOne は 1024x768 int32 です。
問題は、上記のステートメントが最新の CPU で完了するまでに約 5 分かかることです。明らかに、MATLAB での実装が適切ではないため、ループに頼らずに上記をより高速に実行するにはどうすればよいでしょうか?
ご参考までに、整数 (バイナリではない) 画像のブロブを計算するには、このステートメントが必要です。
また:
max(max(Labels)) = 100
max(max(LabelsXplusOne)) = 100
編集:わかりました。多分これは将来他の人を助けるでしょう:
tic; CC(sub2ind(size(CC),Labels,LabelsXplusOne)) = true; toc;
Elapsed time is 0.026414 seconds.
はるかに良くなりました。