为什么这个代码运行时间这么长?

%每一个任务所在网格内任务总数求解

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.电脑本身配置问题.