我有这个代码:
Result = {};
% parfor k=1:1:3
for k=1:1:3
% parfor j=1:1:10
for j=1:1:10
time = 1000*j;
[A, B, C] = test (time,k,j);
Result = cat(1,Result,{k,j,time,A,B,C});
end
end
每次 'k' 迭代大约需要 20 分钟,因为函数 'test' 很重。如您所见,变量“结果”是一个单元矩阵,其中每一行包含函数的结果以及其他变量。
如果我将第一个“for循环”更改为“parfor”,结果首先是一个警告(警告:临时变量 Result 将在 parfor 循环的每次迭代开始时被清除),最后是一个错误(对已清除变量的引用结果)。
作为附加数据,两个循环可以并行运行,因为“测试”功能是独立的。问题是存储结果。
你会怎么做才能解决这个问题?