dc442 发表于 2008-11-5 09:10

关于rand函数的问题

function my=ey(n)
my=2*pi*rand(1,1);
想让n=const后ey(n)即不变,也就是想让如fprintf('%f\n%f',ey(4),ey(4)) 输出两个同样的数,该怎么办?
最好在function函数里面修改
多谢

[ 本帖最后由 dc442 于 2008-11-5 09:15 编辑 ]

ChaChing 发表于 2008-11-5 09:42

有点矛盾!?即然使用rand又要相同?

dc442 发表于 2008-11-5 09:55

回复 沙发 ChaChing 的帖子

n取不同的数时不同,n取相同的数时相同

sogooda 发表于 2008-11-5 10:30

回复 板凳 dc442 的帖子

在每次计算随机数组之前,先把rand的状态重置(reset)试试。
重置随机数生成器的语句是 rand('state',0)

sogooda 发表于 2008-11-5 10:33

回复 地板 sogooda 的帖子


rand('state',0);
rand(3)
rand('state',0);
rand(4)
rand('state',0);
rand(3)
rand('state',0);
rand(4)

ans =

    0.9501    0.4860    0.4565
    0.2311    0.8913    0.0185
    0.6068    0.7621    0.8214


ans =

    0.9501    0.8913    0.8214    0.9218
    0.2311    0.7621    0.4447    0.7382
    0.6068    0.4565    0.6154    0.1763
    0.4860    0.0185    0.7919    0.4057


ans =

    0.9501    0.4860    0.4565
    0.2311    0.8913    0.0185
    0.6068    0.7621    0.8214


ans =

    0.9501    0.8913    0.8214    0.9218
    0.2311    0.7621    0.4447    0.7382
    0.6068    0.4565    0.6154    0.1763
    0.4860    0.0185    0.7919    0.4057

sogooda 发表于 2008-11-5 10:34

回复 ChangChing

数值算法生成的应该叫伪随机数,并不是真正意义的随机数,所以也可能是可重复的。

ChaChing 发表于 2008-11-5 13:13

回复 6楼 sogooda & 3楼 dc442的帖子

谢谢! 我了解了
页: [1]
查看完整版本: 关于rand函数的问题