2

我有一个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。有什么问题,我该如何解决?

谢谢

4

2 回答 2

0

如果不能看到更多代码,很难确定,但您可以通过使用元胞数组存储结果来解决您的问题:

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

或者更简单地说,您可以显式指定结果形状:

AUC_T(i, :) = AUC;
于 2014-09-21T21:55:00.130 回答
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 的 commnet 和回答。

于 2014-09-22T08:28:06.677 回答