parfor中的变量“X”不能在MATLAB中分类

时间:2014-09-21 21:49:04

标签: matlab parallel-processing parfor

我有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 个答案:

答案 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的通讯和回答。