Переменная `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;