目前我有一个 parfor 循环对 MATLAB 中的结构进行计算。虽然我的代码有点长,但可以使用以下示例对其进行模拟:
a.test = [1 2 3];
result = [];
parfor i = 1:3
c = a;
c.test(2) = round( rand() );
if c.test(2) == 1
%# Store c in result
end
end
disp(result.test) %# Should show [1 1 3]
a(因此 c)是一个非常大的结构,因此存储每次迭代对我来说是不可行的(由于内存限制)。
理想情况下,我希望能够将 c 直接存储到我在 parfor 循环之前初始化的变量中。查看 MATLAB 的示例:使用自定义归约函数,我可以看到可以存储给定的迭代变量(无需存储每次迭代),但我并不完全理解他们的方法。我对它们的函数如何产生 2 个单独的输出变量(似乎)感到困惑,而该函数只定义了一个输出变量。
我确信这是一个非常常见的问题,但到目前为止,我的搜索都没有产生任何有效的结果。
任何帮助将非常感激。