%每一个任务所在网格内任务总数求解
function [Num ] = wangge( )
data=xlsread('附件一:已结束项目任务数据');
x1=data(1:length(data(:,2)),1); %取任务的经度
y1=data(1:length(data(:,2)),2); %取任务的纬度
scatter(x1,y1,'.')
max1=max(x1);
min1=min(x1);
max2=max(y1);
min2=min(y1);
d1=(max1-min1)/50;
d2=(max2-min2)/50;
grid on
hold on
[x,y]=meshgrid(min1:d1:max1,min2:d2:max2);
plot(x,y,'k',x',y','k'); %将地区按照 50×50 网格化
axis tight
Num=[];
number=0;
for m=1:length(x1) %对每一个任务遍历
for i=0:50
for j=0:50
%找到每一个任务,对应的网格区域
if (x1(m)>=(min1+id1)) , (x1(m)<(min1+(i+1)*d1)) ,(y1(m)>=(min2+jd2))
,(y1(m)<(min2+(j+1)*d2))
%在满足某一个任务所在区域内,遍历寻找该任务所在的网格内的任务总数
for t=1:length(x1)
if (x1(t)>=(min1+id1)) , (x1(t)<(min1+(i+1)*d1)) , (y1(t)>=(min2+jd2)) , (y1(t)<(min2+(j+1)*d2))
number=number+1;
end
end
Num=[Num,number]; %记录每一个任务所在的网格内的任务总数 number=0;
end
end
end
end
end
1.for循环嵌套层数多会影响速度(for循环本身效率就不高),
2.for循环中的变量没有预分配内存,循环中被赋值的变量应在进入循环之前提前开辟内存空间,比如一个100*100的矩阵x,就用x=zeros(100,100);
3.电脑本身配置问题.