1、问题描述
在vc6.0中调用matlab中的正态分布产生随机数。
2、实现方法
(1)软件安装:
(a):vc++6.0安装 --》matcom安装
随便下一个vc++6.0安装就可以,,安装完毕后下载安装matcom,要求matcom安装在后,在安装过程中出现是否选择vc++的编译器时选择“是”,然后出现是否安装matlab时选择“否”,其他默认即可。。。。。
(2)编写.m文件
(a)安装完matcom后,启动mathtools下的MIDEVA,见图1所示:
图1
(b)选择"File"下的"New",新建一个文件,以"test3.m"保存,见图2所示:
图2
(c)点击Debug下的"go",然后会在matcom的安装目录(假设安装在c盘)c:\matcom45\debug下看到Test3.h,Test3.cpp,Test3.r三个文件。。。至此创建.m文件完毕
(3)创建vc6.0工程
(a)创建ExampleTest3工程,将C:\matcom45\debug下的Test3.h和c:\matcom45\lib下的matlib.h和v4501v.lib拷贝到工程ExampleTest3下面。。
(b)在ExampleTest3中点击“工程”-》“添加到工程”-》“文件”,然后将matlib.h、v4501v.lib、Test3.h添加到工程中。。。
(c)将Test3.cpp中的内容复制到ExampleTest3工程中去:
图4
(d)编译运行可以得到三行四列的随机数如下:
3、以上就是在vc中调用matlib中标准正态分布函数的一种方法。。。
如果要利用非标准正态分布产生随机数则在Test3.cpp中可以采用将randn产生的结果乘以标准差,然后加上期望均值即可。例如,产生均值为0.6,方差为0.1的一个5*5的随机数方式如下:
x = .6 + sqrt(0.1) * randn(5)
4、参考文献:
(1)http://www.cnblogs.com/yunbo/archive/2006/10/17/530915.aspx
(2)http://www.vckbase.com/index.php/wv/1154
(3)http://hi.baidu.com/tyfpe/blog/item/47a11660409ab3d78db10da8.html