function DD=getDelayMatrix(C,n,distfunc,hdtime) %check if matlabpool is open and if not then open it if matlabpool('size') == 0 matlabpool open end % width of the square nsub=n^2; %lay out coordinates [coordx,coordy] = meshgrid(1:n,1:n); coorx=reshape(coordx,nsub,1); coory=reshape(coordy,nsub,1); %elements that need euclidian distance calculating: [nEx,nEy]=find(C>0); nel=length(nEx); % Calculate the locations of the sparse elements %D=zeros(nel,3); parfor k=1:nel i=nEx(k); j=nEy(k); % call distfinc (i.e. sheet, torus etc distM=(distfunc([coorx(i) coory(i)],[coorx(j) coory(j)],n)); D(k,:)=[i,j,distM*50];%gives the distance in micrometers end nTS=ceil(max(D(:,3))/hdtime); DD={}; for k=1:nTS toconvert=D(k-1<=D(:,3)/hdtime & D(:,3)/hdtime