다음 함수는 가우스 커널을 계산하며 내가 작성한 커널 릿지 회귀 알고리즘의 일부입니다. 나는 실행 시간을 향상시키기 위해이 함수를 어떻게 적절하게 수정할 수 있는지 궁금했다. (즉, 두 개의 루프를 제거하자.) 어떤 아이디어?MATLAB 함수의 실행 시간 향상
function [K] = calculate_krr_gaussiankernel(Xi,Xj,S)
K = zeros(size(Xi,1),size(Xj,1));
for Ixi = 1:size(Xi,1),
for Ixj = 1:size(Xj,1),
K(Ixi,Ixj) = exp((-norm(Xi(Ixi,:) - Xj(Ixj,:)) .^ 2) ./ (2 * (S .^ 2)));
end
end
end
편집 : 공식 :
@RodyOldenhuis : 설명해 주셔서 감사합니다! – Jonas
@eualin : 개별 단계에 대한 설명을 추가했습니다. – Jonas