У меня есть следующий код в октаве:Как оптимизировать следующий двойной цикл в октаве?
dist=0;
for i = 1:length(x);
for j = 1:length(y);
v = x(i,:) - y(j,:);
distvect(j) = norm(v);
endfor
dist = dist + min(distvect);
endfor
где х и у матрицы с размером п х 2 и х м 2. Моей главной проблемой: мне нужно запустить код, указанным выше в несколько раз.
Я уверен, что есть способ оптимизировать его с использованием, возможно, только одной матрицы вместо вектора v каждый раз во внутреннем цикле, но я не смог ее найти. Я искал в Интернете, я нашел функцию arrayfun, которая могла бы помочь, но я не мог понять, как ее использовать.
Спасибо за помощь, GRUS
Я думаю, что есть некоторые ошибки. попробуйте это с x = rand (440,2), y = rand (740,2); –
Спасибо, я думаю, он исправлен. Я суммировал неправильную ось. – Lucas
Отлично, спасибо. Это было именно то, что я искал, это намного быстрее. – grus