【求助】如何将matlab中的randn函数转变为C语言形式的啊?
matlab中的randn函数和C中的srand函数一样吗?如何转变为C语言形式的啊?
下面是matlab语言的:
s=23441;
randn('state',s);
r1=randn(1,L); randn('state',s-100);
r2=randn(1,L); randn('state',s-200);
%其中r1=randn(1,L); randn('state',s-100); 是什么意思了?
多谢啦~~ 返回小木虫查看更多
今日热帖
我没用过matlab写过程序,仅提供个人意见:
1。百度randn可知:randn 产生正态分布的随机数或矩阵的函数
百度srand可知 srand 随机数发生器的初始化函数,具体用法参考http://blog.sina.com.cn/s/blog_4826f7970100076h.html
由此可知,a。这两个显然是不一样的。b,百度即可解决部分问题。
2。c语言中的随机数发生器是rand(), 该函数产生的是均匀分布随机数。如果你想生成一个正态分布随机数,需要对rand()函数进行一些转换即可,方法有很多种,如常用的Box–Muller transform,参考文献见 《NUMERICAL RECIPES》第三版p364,或参看维基百科http://en.wikipedia.org/wiki/Box ... r_transform_%28C%29
3。如果你只是算着玩,用c语言中的rand() 函数即可。如果你做科研,则对随机数的要求就比较高了,你可以再找高质量随机数发生器,