I put my matlab code here.
function distance=FrechetDistance(p1,n,p2,m);
tempdis(m,n)=0;
distance=Cal(p1,p2,tempdis,m-1,n-1)
end
function tempdis=Cal(p1,p2,i,j);
if tempdis[i,j] > -1.0
tepdis=tempdis[i,j];
end
elseif i == 0 && j == 0
tempdis[i,j] = Dis(p1,p2,0,0);
end
elseif i>0&&j==0
tempdis[i,j] = max([Cal(p1,p2,tempdis,i-1,0),Dis(p1,p2,i,0)])
end
elseif i==0&&j>0
tempdis[i,j] = max([Cal(p1,p2,tempdis,0,j-1),Dis(p1,p2,0,j)])
end
elseif
tempdis[i,j] = max([min([Cal(p1,p2,tempdis,i-1,j),Cal(p1,p2,tempdis,i-1,j-1),Cal(p1,p2,tempdis,i,j-1)]),Dis(p1,p2,i,j)])
end
else
tempdis[i,j] = 9999999
end
end
function dis=Dis(p1,p2,i,j);
dis=Sqrt((p1[0,j]-p2[0,i])^2 + (p1[1,j]-p2[1,i])^2);
end