加快MATLAB中随机数的生成

月亮1234

有什么方法可以生成伪随机数以降低精度,从而加快处理速度吗?

另一件事是,如果一次都生成随机数(例如rand(100,1000)),而不是一次生成一个随机数,那么我会节省时间有人可以解释为什么这是真的吗?

马丁·S

MATLAB实际上实现了多个随机数生成器。它们在执行时间和“随机性”方面有很大的不同(我认为,但我没有验证)。但是,从您的问题中我了解到,速度对您而言更为重要。

% 'twister' is the default in MATLAB Versions 7.4 and later
tic();
for i=1:1000000
    rand('twister'); 
end
toc();
%Elapsed time is 2.912960 seconds.

% 'state' is the default in MATLAB versions 5 through 7.3
tic();
for i=1:1000000
    rand('state'); 
end
toc(); 
% Elapsed time is 2.162040 seconds.

% 'seed' is the default in MATLAB version 4
tic();
for i=1:1000000
    rand('seed'); 
end
toc();
% Elapsed time is 0.758830 seconds.

重要说明:我使用较旧版本的MATLAB(v.7.6,又名R2008a)运行了上面的脚本。在较新的版本中,rand(generator) 不建议使用语法相反,您应该使用该功能rng(seed, generator)在线文档)。副作用是,rng(seed, generator)您可以选择更多的随机数生成器。有关详细信息,请查阅文档。

关于第二个问题:无论选择哪种生成器,一次生成许多随机数总是比生成许多单个随机数快。这是因为MATLAB的内部结构已针对并行处理进行了优化。

tic();
for i=1:100000
    rand(); 
end
toc();
% Elapsed time is 0.024388 seconds.

tic();
rand(100, 1000);
toc();
% Elapsed time is 0.000680 seconds.

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

matlab中的随机数生成器问题

来自分类Dev

如何加快棘手的随机数生成

来自分类Dev

Matlab:如何生成伪随机数

来自分类Dev

在MATLAB中生成随机数

来自分类Dev

在MATLAB中生成随机数

来自分类Dev

Matlab:如何生成伪随机数

来自分类Dev

Haskell中的Grokking随机数生成

来自分类Dev

SQL Server中的随机数生成

来自分类Dev

在PostScript中以间隔生成随机数

来自分类Dev

种子在随机数生成中的作用

来自分类Dev

Omnet ++中的随机数生成

来自分类Dev

R中的随机数生成

来自分类Dev

限制Python中的随机数生成

来自分类Dev

随机生成随机数

来自分类Dev

在Matlab中初始化随机数生成器

来自分类Dev

如何在Matlab中生成唯一的随机数?

来自分类Dev

比较使用随机数生成的Matlab和Numpy代码

来自分类Dev

在MATLAB中生成随机数和序列密钥

来自分类Dev

在MATLAB中生成随机数单元格,如何?

来自分类Dev

在Matlab中生成多元正态分布的随机数

来自分类Dev

MATLAB:如何生成2个小于1的随机数?

来自分类Dev

Matlab:以给定的概率从正态分布生成随机数

来自分类Dev

Matlab如何生成高斯分布随机数?

来自分类Dev

在Matlab中生成多元正态分布的随机数

来自分类Dev

C程序中的随机数生成器未生成正确的随机数

来自分类Dev

并行计算(MATLAB)中的随机数生成器,每个并行循环中是否有不同的初始随机数?

来自分类Dev

正确生成随机数

来自分类Dev

生成随机数Jquery

来自分类Dev

真随机数生成