在一大组矩形内有效计算和分配点(大集)

时间:2014-10-23 13:11:02

标签: performance matlab geometry

我有一个大的MxN坐标数组,我在结构Rect.Now中有一大组矩形我正在计算每个矩形的密度购买计算其中的点的面积/没有。 在Matlab中,处理这种情况的低效方法如下所示

for ii=1:size(Rect,1)
        ind = X>Rect(ii,1) & X<Rect(ii,3) & Y>Rect(ii,2) & Y<Rect(ii,4);
        Num_of_coord(ii) = sum(ind);
end

现在,对于每个矩形,我可以得到X和Y中的点数

如何在Matlab中快速实现?

1 个答案:

答案 0 :(得分:2)

您可以使用bsxfun删除循环:

ind = bsxfun(@gt, X(:), Rect(:,1).') & bsxfun(@lt, X(:), Rect(:,3).') & ...
      bsxfun(@gt, Y(:), Rect(:,2).') & bsxfun(@lt, Y(:), Rect(:,4).');
Num_of_coord = sum(ind, 1);