我有一个大的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中快速实现?
答案 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);