小编Kar*_*yMa的帖子

与三角数的因式分解平行

三角形数字的序列是通过将自然数相加而生成的。因此,第7 三角数将是1+2+3+4+5+6+7 = 28。前十个术语为:1, 3, 6, 10, 15, 21, 28, 36, 45, 55。前四个三角形中包含的因子是:

1: 1
3: 1, 3
6: 1, 2, 3, 6
10: 1, 2, 5, 10
Run Code Online (Sandbox Code Playgroud)

我们看到这6是第一个具有四个除数的三角形。

为了找到第一个三角数超过500的除数,我编写了以下代码:

1: 1
3: 1, 3
6: 1, 2, 3, 6
10: 1, 2, 5, 10
Run Code Online (Sandbox Code Playgroud)

我想使用parfor而不是for在外循环上加快此代码的速度。但是,我得到了错误:

错误:变量s1可能旨在作为归约变量,但实际上是未初始化的临时变量。

请参见MATLAB中的Parallel for Loops,“拟为归约变量的临时变量”。

如何并行化此代码?

parallel-processing performance matlab factors parfor

1
推荐指数
1
解决办法
77
查看次数