如何在MatLab中加快迭代函数的调用?

问题描述 投票:0回答:1

在MatLab中,我必须调用t分布的CDF(tcdf迭代(因为下一个输入值取决于tcdf的先前输出),不幸的是,这大大降低了我的代码的速度。] >

tic
z = NaN(1e5,1);
z(1) = 1;
x = 2;
for ii = 2:1e5
    x = tcdf(z(ii-1),x);
    z(ii) = z(ii-1)*x;
end
toc

Elapsed time is 4.717087 seconds.

是否有办法以某种方式加快速度?

作为比较:

tic
z = randn(1e5,1);
tcdf(z,5);
toc

Elapsed time is 0.091353 seconds.

在MatLab中,我必须迭代调用t分布的cdf(tcdf)(因为下一个输入值取决于tcdf的先前输出),不幸的是,这大大降低了我的代码的速度。 tic z = ...

matlab loops approximation cdf
1个回答
0
投票

如下所示将随机数生成移动到循环外部

© www.soinside.com 2019 - 2024. All rights reserved.