入门MATLAB,如何是这两个循环生成的随机数相同

入门MATLAB,如何是这两个循环生成的随机数相同

clear;clc
rng(0)
for i=1:4
    x=rand(1,3);x
end
rng(0)
parfor i=1:4
    y=rand(1,3);y
end

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:

要使这两个循环生成相同的随机数,需要使用相同的种子来初始化随机数生成器。在MATLAB中,可以使用rng函数来设置随机数生成器的种子。在这种情况下,您已经使用了rng(0)来设置种子,因此只需要在第二个循环中再次使用rng(0)即可生成相同的随机数。请注意,如果您想要使用parfor循环来并行生成随机数,则需要使用spmd语句来设置种子。

下面是修改后的代码:

clear;clc
rng(0)
for i=1:4
    x=rand(1,3);x
end
rng(0)
parfor i=1:4
    rng(0)
    y=rand(1,3);y
end

这将生成相同的随机数序列。

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^