在C#中调用matlab函数

时间:2015-02-08 07:44:53

标签: c# matlab

我想在我的C#项目中调用matlab函数。 这是我的matlab函数:

function [A,B] = estiamteBetaDistAlpha(mu,sigmasq)

syms x
a  = sprintf('x*((x/%f)-x) = %f *(x+1+((x/%f)-x))*((x+((x/%f)-x))^2)^2 ',mu,sigmasq,mu,mu);

aa = double(solve (a));
sel = find(aa>0);
pot= aa(sel);

B  = pot(1) * (1/mu - 1); 
A  = pot(1);

它解决方程并给出正解。 我没有为C#找到类似的东西所以我想在我的C#代码中调用它以获得相同的结果。

我在互联网上找到这种方式,但它什么都不做:

 MLApp.MLApp matlab = new MLApp.MLApp();
            matlab.Execute(@"cd C:\Work\Predictor Material\PredictionAlgorithm\code\predictor\helper");
            object result = null;
            matlab.Feval("estiamteBetaDistAlpha", 2, out result,0.024, -0.002);
            List<double> sol = result as List<double>;
            Console.WriteLine(sol[0]);
            Console.WriteLine(sol[1]);
            Console.ReadLine();

有什么想法可以帮助我吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

问题不在于MLApp或其任何功能。问题是你的第五行:

List<double> sol = result as List<double>;

使用此代码,sol将是一个null对象。相反,请使用以下代码:

List<Double> sol = (result as Array).Cast<Double>().ToList();