いくつかの気象データを取得してから雲をポリゴンに変換するモデルを最適化して、それらをさらに活用できるようにしています。
コードは機能していますが、その種類は遅いです。プロファイラーを実行すると、次の行が呼び出され106360430
、処理に約 50 秒かかることがわかりました。
これらの行をより効率的にする方法はありますか?
function [oddNodes] = pointInPolygon (point,thePolygon)
% determine if a point is in the polygon (faster than matlab "inpolygon"command
polyPoints=size(thePolygon,1); % number of polygon points
oddNodes = false;
j=polyPoints;
x=point(1); y=point(2);
for i=1:polyPoints
if (thePolygon(i,2)<y && thePolygon(j,2)>=y || thePolygon(j,2)<y && thePolygon(i,2)>=y)
if (thePolygon(i,1)+(y-thePolygon(i,2))/(thePolygon(j,2)-thePolygon(i,2))*(thePolygon(j,1)-thePolygon(i,1))<x)
oddNodes=~oddNodes;
end
end
j=i;
end