作者taoko (春秋两不沾)
看板C_Sharp
标题Re: [问题] 如何用C#计算常态分配?
时间Wed May 23 17:45:36 2007
※ 引述《taoko (春秋两不沾)》之铭言:
: ※ 引述《taoko (春秋两不沾)》之铭言:
: : 如题,一般数学计算可以用内建的Math library,像是Max, Min等
: : 可是我想要计算统计的标准常态分配
: : 要怎麽写才行
: : 我想过自己把写出常态分配的方程式,然後去积分
: : 可是Math没办法求积分@@""
: 感谢推文的大大们,由於我不只要算值,还要求倒函数
: Z(.05)=?, 以及1.96= Z(x)。所以自行求积分是比较麻烦
: 所以後来采用Matlab,他有内建函式
: 然後再把她引入进来 ^^
请先到专案的Add Reference里将Matlab.Application的COM物件加入,
然後到object Browser视窗里找到这个物件,
然後"using System.Reflection; "
要记得把.m的档案放在C\Matlab\work之中
程式码如下:
------------------------------------------
//Get the type info
Type matlabtype;
matlabtype = Type.GetTypeFromProgID("matlab.application");
//Create an instance of MATLAB
object matlab;
matlab = Activator.CreateInstance(matlabtype);
//Prepare input as an object
object[] x = new Object[] { "Untitled1([1.645])" };
matlabtype.InvokeMember("Execute", BindingFlags.InvokeMethod, null, matlab, x)
-----------------------------------------
缺点是会自动跑出一个Matlab的视窗,不知道怎麽关掉@@""
参考网址
http://bbs.enadd.com/redirect.php?tid=6697&goto=lastpost
--
三更灯火五更鸡,疾笔振书孤影随。潮浪不识书中趣,惟有陆翁笑我颠。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.14.80
※ 编辑: taoko 来自: 140.112.14.80 (05/23 17:46)