동일한 행 수의 2 행렬을 취하여 스칼라 값을 구하는 함수가 f
입니다. 이제는 두 개의 행렬 목록을 취하고 모든 쌍에 f
을 호출하는 새 함수를 만들 가능성을 찾고 있습니다.모든 쌍의 행렬을 계산하십시오.
나는이 루프의 무어 효율적인 구현이 필요합니다
% X = cell of matrices
% Y = cell of matrices
for k=1:length(X)
for l=1:length(Y)
M(k,l) = f(X{k},Y{l});
end
end
제곱 거리
을의 평균 수 예를f
를 들어
(그것은 X와 Y는 세포 인 요구 사항은 아닙니다)
f = @(X,Y) mean(mean(bsxfun(@plus,dot(X,X,1)',dot(Y,Y,1))-2*(X'*Y)));
그러나 질문이 없습니다 f
, 그것은 훨씬 더 복잡한 문제의 예일뿐입니다.
'f'에 대한 질문은 아마도 효율성을 향상시키는 가장 중요한 방법 일 것입니다. 'f'가 두 개의 n-by-m 행렬을 취하여 하나의 스칼라를 생성하지만, 두 개의 nx mx2 행렬을 취하여 두 개의 요소 벡터를 생성 할 수 있도록 작성 될 수 있습니다. 아마도 최선의 선택입니다. – Dan
@ Dan의 질문에 더 많은 것들을 추가하는 것은 순수한 내 견해입니다. 아마도 당신이 사용하고있는 기능 중 하나를 공유 할 수있을 것입니다. 복잡하다고 했으므로 새로운 질문을 할 수도 있습니다. – Divakar
Thx. 불행히도 함수 f (많은 함수가 있습니다)가 내 통제하에 있지 않습니다. 위에서 설명한대로 새로운 함수로 래핑 할 수 있습니다. –