我正在尝试将约 100 万个值分配给 100x100 逻辑矩阵,如下所示:
CC(Labels,LabelsXplusOne) = true;
其中 CC 是 100x100 逻辑和标签,LabelsXplusOne 是 1024x768 int32。
现在的问题是上述语句在现代 CPU 上大约需要 5 分钟才能完成。显然它在 MATLAB 中的实现很糟糕,那么我们如何在不使用循环的情况下使上述运行更快呢?
如果您想知道,我需要这个语句来计算整数(不是二进制)图像中的 blob。
并且:
max(max(Labels)) = 100
max(max(LabelsXplusOne)) = 100
编辑:好的,我明白了。也许这将在未来对其他人有所帮助:
tic; CC(sub2ind(size(CC),Labels,LabelsXplusOne)) = true; toc;
Elapsed time is 0.026414 seconds.
现在好多了。