각 픽셀 위치에 대한 길이 벡터 M 인 이미지 인 KxLxM 행렬 A가 있습니다. 필자는 특징 벡터 v, 길이 M을 가지고 있습니다. 이미지 A의 각 픽셀 위치에서 픽셀의 특징 벡터와 내 특징 벡터 v의 상관 관계를 계산하려고합니다.matlab에서 벡터와 3d 행렬의 상관 관계
나는이 작업을 이미 루프를 사용하여 수행했습니다 ,하지만 루프 matlab에서 느립니다. 누구든지 이것을 벡터화하는 방법에 대한 제안을 가지고 있습니까?
function test()
A = rand(4,5,3);
v = [1 2 3];
c = somecorr(A, v);
size(c)
function c = somecorr(a,v)
c = a(:,:,1).*0;
for y = 1:size(a,1)
for x = 1:size(a,2)
c(y,x) = corr2(squeeze(a(y,x,1:length(v)))',v);
end
end
>>test()
ans =
4 5
나는 그것이 MATLAB의 루프가 느린 경우였던 것으로 생각한다. 하지만 요즘에는 Just In Time 편집의 힘으로 인해 더 이상 반드시 사실이 아닙니다. [링크] (http://www.matlabtips.com/matlab-is-no-longer-slow-at-for-loops/) – sietschie