유클리드 거리를 기반으로 한 벡터에서 다른 벡터로 점을 매핑하는 코드를 작성하고 올바르게 작동하는지 확인했습니다.효율성을 위해 코드 최적화
그러나 너무 많은 시간이 걸립니다. 본질적으로 나는 A와 B 벡터의 유클리드 거리에 대한 행렬을 만들고 그것의 최소값을 찾았습니다. 이 점의 매핑을 표시 한 후, 다음 매핑이 발생하기 위해 NaN으로 표시하여 유클리드 행렬의 행과 열을 삭제합니다. 그것은 지금 굉장히 느리기 때문에
이 코드는 ...Euclid = distance(A,B); % calculates euclid distance column v/s column wise.
for var = 1 : value
%# finds the min of Euclid and its position, when Euclid is viewed as a 1D array
[~, position] = min(Euclid(:));
%#transform the index in the 1D view to 2 indices
[i,j] = ind2sub(size(Euclid),position);
%display(strcat(num2str(i),32, num2str(j)));
mapping = [A(1,i) A(2,i) B(1,j) B(2,j)];
fprintf(FID,'%d %d %d %d\n', mapping);
Euclid(i , :) = NaN;
Euclid(: , j) = NaN;
%counter = counter + 1;
end
문제는 5000 X 5000 매트릭스의 코드는 단지 오랜 시간 동안 달려 있다는 것입니다 ... 더 효과적 일 수
누군가가 나를 도울 수 있습니까?
'value'는 어디에서 왔습니까? – PearsonArtPhoto
이것은 5000에 해당합니다 ...공간의 점 수에 따라 달라집니다. – anon