24小时热门版块排行榜    

Znn3bq.jpeg
查看: 2841  |  回复: 9

田山东

捐助贵宾 (著名写手)

[求助] matlab如何生成不同的随机数

程序1.下面这个程序生成的随机数都是相同的
h=zeros(10,10);
t=1;
fid1=fopen('tyh4.dat','a');
for jj=1:4
rand('state',sum(1000000*clock));
x=rand(1,10)-0.5;
%fprintf(fid2,'%f\n',x);
for  j=1:10;
    H(j,j)=x(j)*t;
    fprintf(fid1,'%f\n', H(j,j));
end  
end
把文件打开看下,4次生成的随机数相同。
去掉rand('state',sum(1000000*clock));
h=zeros(10,10);
t=1;
fid1=fopen('tyh4.dat','a');
for jj=1:4
x=rand(1,10)-0.5;
%fprintf(fid2,'%f\n',x);
for  j=1:10;
    H(j,j)=x(j)*t;
    fprintf(fid1,'%f\n', H(j,j));
end  
end
4次循环生成的随机数不同,但是多次运行程序会发现,每次得到的文件内容都是相同的。
目的:每次jj循环得到不同的随机数,每次运行程序得到不同的随机数,怎么能实现呢?
回复此楼
everythinghasitsseason.enjoyyourlife.
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

送鲜花一朵
这样就可以,大侠解释下吧
h=zeros(10,10);
t=1;
fid1=fopen('tyh66.dat','a');
for jj=1:4
rng('shuffle')
x=rand(1,10)-0.5;
%fprintf(fid2,'%f\n',x);
for  j=1:10;
    H(j,j)=x(j)*t;
    fprintf(fid1,'%f\n', H(j,j));
end  
end
everythinghasitsseason.enjoyyourlife.
2楼2012-12-12 10:14:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

在2011下可以了,我linux下用的是r2010b,为什么有这个提示呢?Undefined function or method 'rng' for input arguments of type 'char'
everythinghasitsseason.enjoyyourlife.
3楼2012-12-12 10:31:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

最后没有办法只能让系统产生一个大的随机数数组,没循环一次调用这个大数组里面的一行或一列,一直调用下去,反正大数组是大的随机数,不会重复。
everythinghasitsseason.enjoyyourlife.
4楼2012-12-12 11:04:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

【答案】应助回帖

感谢参与,应助指数 +1
你要进行撒种子seed,不然,都是一样的!~~~

» 本帖已获得的红花(最新10朵)

很女子很弓虽大
5楼2012-12-12 12:44:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

送鲜花一朵
引用回帖:
5楼: Originally posted by lurencyj at 2012-12-12 12:44:01
你要进行撒种子seed,不然,都是一样的!~~~

取随机数rand()。取系统时间作为随机数种子,是避免产生伪随机数,不然每次重新打开matlab所取的随机数序列是相同的。

%取0-1之间的随机数
    ctime = datestr(now, 30);%取系统时间
    tseed = str2num(ctime((end - 5) : end)) ;%将时间字符转换为数字
    rand('seed', tseed) ;%设置种子,若不设置种子则可取到伪随机数
%取0-1之间的随机数
    for i = 1:5      
        weight(i) = rand();
    end
    weight
这样可以吧?呵呵,网上搜到了
everythinghasitsseason.enjoyyourlife.
6楼2012-12-12 14:37:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

这样还是不行啊。妈的,。抑郁了!!
这样的话有下面的情况:
第一次运行程序,生成一组随机数1
第二次运行程序,又生成一组随机数2
1和2不同,。
但是!!!!!!程序循环10次,每次循环得到的随机数相同!!我哭了!!!
:cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry::cry:
everythinghasitsseason.enjoyyourlife.
7楼2012-12-12 19:04:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

rand('seed',jj+7);
好像每次改变jj+7的数值就可以,我试下。
everythinghasitsseason.enjoyyourlife.
8楼2012-12-12 19:54:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

感谢参与,应助指数 +1
整那么复杂干嘛?我用下面的代码run了几次,每次的数也不一样,同一次10次循环得到的也不一样.
CODE:
for i=1:10
    fprintf(1,'%f\n',rand(1));
end

结果:
CODE:
>> temp
0.757740
0.743132
0.392227
0.655478
0.171187
0.706046
0.031833
0.276923
0.046171
0.097132
>> temp
0.823458
0.694829
0.317099
0.950222
0.034446
0.438744
0.381558
0.765517
0.795200
0.186873
>> temp
0.489764
0.445586
0.646313
0.709365
0.754687
0.276025
0.679703
0.655098
0.162612
0.118998
>>

matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
9楼2012-12-12 20:21:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

田山东

捐助贵宾 (著名写手)

引用回帖:
9楼: Originally posted by libralibra at 2012-12-12 20:21:48
整那么复杂干嘛?我用下面的代码run了几次,每次的数也不一样,同一次10次循环得到的也不一样.
for i=1:10
    fprintf(1,'%f\n',rand(1));
end

结果:
>> temp
0.757740
0.743132
0.392227
0.65547 ...

超级郁闷,我用的是2011b,linux下装的是2010b,
for i=1:10
    fprintf(1,'%f\n',rand(1));
end
在2011b下完全是正确的,但是在2010下就悲剧了!!

找个最新版的matlab装下吧。没办法了
everythinghasitsseason.enjoyyourlife.
10楼2012-12-13 16:47:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 田山东 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿厦大生物学332求调剂 +7 池池池池池池 2026-04-08 7/350 2026-04-09 09:48 by gong120082
[考研] 285求调剂 +8 AZMK 2026-04-07 9/450 2026-04-09 09:40 by 逆水乘风
[考研] 本科南方医科大学 一志愿985 药学学硕284分 求调剂 +3 弱水听文 2026-04-09 3/150 2026-04-09 09:06 by susuqq
[考研] 材料专硕调剂 +15 哈哈哈吼吼吼哈 2026-04-07 16/800 2026-04-09 08:33 by byk122723822
[考研] 生物学学硕,初试351分,求调剂 +4 …~、王…~ 2026-04-08 5/250 2026-04-08 21:49 by limeifeng
[考研] 调剂 +3 电气300求调剂不 2026-04-08 6/300 2026-04-08 09:39 by 电气300求调剂不
[考研] 298求调剂 +4 残荷新柳 2026-04-07 4/200 2026-04-07 23:02 by lbsjt
[考研] 259求调剂 +5 就爱吃土豆呀呀 2026-04-07 5/250 2026-04-07 22:40 by JourneyLucky
[考研] 295求调剂 +18 xndjjj 2026-04-04 19/950 2026-04-07 11:02 by wangjy2002
[考研] 一志愿太原理工大学计算机技术专硕348,求调剂指导 +3 nexious 2026-04-05 3/150 2026-04-07 08:19 by jp9609
[考研] 269电子信息求调剂,可转专业 +5 独酌wl 2026-04-06 5/250 2026-04-06 17:23 by 土木硕士招生
[考研] (调剂)一志愿报考哈尔滨工业大学0857资源与环境专业378分考生 +7 狠狠加油 2026-04-05 8/400 2026-04-06 16:52 by momo皓
[考研] 材料调剂 +12 一样YWY 2026-04-04 12/600 2026-04-05 08:24 by 544594351
[考研] 11408 一志愿西电,277分求调剂 +4 zhouzhen654 2026-04-03 4/200 2026-04-04 18:10 by 猪会飞
[论文投稿] 求文献 5+3 ys879651$ 2026-04-02 3/150 2026-04-04 17:22 by bobvan
[考研] 求生物学专业调剂-332分 +5 云朵遛弯指南 2026-04-04 5/250 2026-04-04 10:05 by rzh123456
[考研] 266分,一志愿电气工程,本科材料,求材料专业调剂 +9 哇呼哼呼哼 2026-04-02 9/450 2026-04-03 12:05 by 1753564080
[考研] 考研调剂 +3 李木子0120 2026-04-02 5/250 2026-04-02 21:45 by dongzh2009
[考研] 372分材料与化工(085600)一志愿湖南大学求调剂 +5 蓝笺片 2026-04-02 6/300 2026-04-02 21:37 by dongzh2009
[考研] 一志愿大工学硕,求调剂 +4 yub0811 2026-04-02 4/200 2026-04-02 21:36 by 百灵童888
信息提示
请填处理意见