我正在研究一个工作计划,以计算飞机在目标区域上空飞行时可以看到的情况.当它越过该区域时,它可以跟随许多轨道中的一个,大约100个正常区域大小.我已经创建了一个大型循环,以查看该平面是否可以看到该区域的某些部分但是它的运行效率非常低.我已将该区域定义为网格1001x1001
xgrid定义x值的变量1001x1.
thelines是一个可变的2 x 1001 x轨道,其中第一行是顶行相应x值的y值.第二行是底线的y值.
在这两条线之间是可见区域.如果可以看到它将seearea(1001x1001)上的点标记为1.如果不是0.
for M=1:tracks
for f=1:1001
for i=1:1001
if xgrid(f,1)>thelines(i,1,M) && xgrid(f,1)<thelines(i,2,M);
seenarea(f,i,M)=1; % This indicated the area has been seen
else
seenarea(f,i,M)=0; % This is not seen
end
end
end
fullbestinfo(1,M)={seenarea(:,:,M)}; % This stores the seen area in another cell
if max(seenarea(:,:,M)) < 1 % No area seen, stop
seenarea(:,:,M)=[];
break
end
end
Run Code Online (Sandbox Code Playgroud)
我已经使用matlab探查器确定了我的程序的瓶颈.任何帮助将非常感激.谢谢,Rich