У меня есть матрица KxLxM A, которая представляет собой изображение с вектором признаков длиной M для каждого местоположения пикселя. У меня также есть вектор признаков v, длина M. В каждом местоположении пикселя изображения A я хочу вычислить корреляцию вектора признаков пикселя с моим вектором признаков v.
Я уже сделал это с помощью цикла, но циклы в 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