我有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
之后使用它。有什么问题,我该如何解决?
由于
答案 0 :(得分:0)
如果没有能够看到更多代码,很难肯定地说,但是你可以通过使用单元格数组来存储结果来解决你的问题:
parfor i=1:20
...
AUC_T{i}=AUC;
end
或者更简单地说,您可以明确指定结果形状:
AUC_T(i, :) = AUC;
答案 1 :(得分:0)
我找到了解决方案:
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的通讯和回答。