2014-06-17 3 views
3

В MATLAB, у меня есть переменная proba и у меня есть parfor loop, как показывает ниже:Как использовать переменную вне цикла PARFOR в MATLAB?

parfor f = 1:N 
    proba  = (1/M)*ones(1, M); 
    % rest of the code 
end 
pi_proba = proba; 

MATLAB говорит, что: «Временная переменная„проба“используется после цикла PARFOR, но его значение недетерминирован»

Я не понимаю, как исправить эту ошибку. Мне нужно использовать параллельный цикл, и мне нужно proba после цикла. Как это сделать?

ответ

4

При использовании parfor классы классифицируются в соответствии с these categories. Убедитесь, что каждая переменная соответствует одной из этих категорий. Для не пишущего доступа к proba широковещательный-Variable будет лучшим выбором:

proba  = (1/M)*ones(1, M); 
parfor f = 1:N 
    % rest of the code 
end 
pi_proba = proba; 

В случае написания доступа в цикле, нарезанный переменная nessecary:

proba=cell(1,N) 
parfor f = 1:N 
    %now use proba{f} inside the loop 
    proba{f}=(1/M)*ones(1, M); 
    % rest of the code 
end 
%get proba from whatever iteration you want 
pi_proba = proba{N}; 
Смежные вопросы