Я пытаюсь запустить этот цикл как parfor петли:Parfor в Matlab
correlations = zeros(1,N);
parfor i = 1:(size(timestamps,1)-1)
j = i+1;
dts = timestamps(j) - timestamps(i);
while (dts < T) && (j <= size(timestamps,1))
if dts == 0 && detectors(i) ~= detectors(j)
correlations(1) = correlations(1) + 2;
elseif detectors(i) ~= detectors(j)
dts = floor(dts/binning)+1;
correlations(dts) = correlations(dts) + 1;
end
j = j + 1;
if j <= size(timestamps,1)
dts = timestamps(j) - timestamps(i);
end
end
end
Matlab дает мне следующую ошибку:
Error: File: correlate_xcorr.m Line: 18 Column: 17
The variable correlations in a parfor cannot be classified.
See Parallel for Loops in MATLAB, "Overview".
линии 18 является следующее:
correlations(1) = correlations(1) + 2;
Я не могу понять, почему это не должно быть возможным. Конечное значение корреляций не зависит от порядка, в котором выполняется цикл, а только dts и детекторов. Я нашел аналогичные примеры в документации, которые работают нормально.
Почему Matlab не выполняет этот код и как его исправить?
исправление немецкого текста будет оценено :) – fpe
Извините, я немного перепутал. – Stein
Я не против, но оставаться с англичанами будет лучше :) – fpe