for循环的每n个步骤我需要执行一个耗时的操作,我以后只需要n次迭代(下次我调用这个耗时的操作) - 仍然需要迭代结果i-1到开始计算。
我相信我可以从多线程中受益 - 只有2个线程。在我: (第一个线程):继续运行主循环,直到达到i + n并等待第二个线程完成。 (2)进行耗时的操作。
无论如何要在Matlab中实现它?
for i=1:1:N
y(i) = g(y(i-1), x(i-1));
if(mod(i, n) == 1)
x(i) = f(x(i-n), y(i-1)); %Time consuming
else
x(i) = x(i-1);
end
end
谢谢!
答案 0 :(得分:1)
您可以将脚本分为两部分: 1.计算y数组的第一个循环 2.计算x数组的第二个循环
您可以使用并行计算工具箱来加速第二个循环。例如PARFOR