Я пытаюсь настроить вложенный цикл parfor
в MatLab R2016a, как показано ниже.
N = size(A,1);
M = size(v,1);
in = zeros(N*M,1);
parfor i=1:N
for j=1:M
k = (i-1)*M+j;
if sqrt(sum((A(i,:)-v(j,:)).^2))<=tol
in(k) = i;
end
end
end
Однако я получаю следующую ошибку: Действительные индексы для 'in' ограничены в циклах PARFOR. Можно ли как-то исправить это, поскольку оба массива A
и v
значительно велики, более 40 000 строк для A
и 8 000 v
? Переменная tol
равна 0,0959.
vecnorm
, если ваш Matlab 2017b и выше. - person percusse   schedule 08.06.2018in
но параллельные задачи пытаются писать в одно и то же - person percusse   schedule 08.06.2018k
никогда не будет иметь одинаковое значение для нескольких итерацийi
, поскольку оно также зависит отj
.k
считает от 1:M*N. - person Yixi Shan   schedule 08.06.2018k=(i-1)*M+j
- person Yixi Shan   schedule 11.06.2018