Переменная `X` в parfor не может быть классифицирована в MATLAB

У меня есть parfor loop как это:

parfor i=1:20

for j=1:5
%% Some codes

[~,~,~,AUC]=perfcurve(testTargets,testOutputs,'1');

AUC_T(i)=AUC;

end

%% averaging between AUC_Ts in outputs of j=1:5

end

У меня есть эта ошибка после запуска этого кода:

The variable AUC_T in a parfor cannot be classified.
See Parallel for Loops in MATLAB, "Overview".

Я хочу сохранить значения AUC и использовать его заново parfor loop, В чем проблема и как я могу ее решить?

Спасибо

2 ответа

Решение

Я нашел решение:

parfor i=1:20

for j=1:5
%% Some codes

[~,~,~,AUC]=perfcurve(testTargets,testOutputs,'1');

AUC_T(i,j)=AUC;

end

end

%% averaging between AUC_T values

Мы должны установить усреднение после parfor петля.

Спасибо Michael Graczyk за ваш комнет и ответ.

Трудно сказать наверняка, не видя больше кода, но вы, вероятно, можете решить свою проблему, используя массив ячеек для хранения результатов:

parfor i=1:20
    ...
    AUC_T{i}=AUC;
end

Или, проще говоря, вы можете явно указать форму результата:

AUC_T(i, :) = AUC;
Другие вопросы по тегам