从C#客户端调用MATLAB软件 - 获得标量结果

时间:2012-07-23 15:52:23

标签: c# matlab

我目前正在使用此初步代码:

static void Main(string[] args)
{
    try
    {
    Type matlabtype;
    matlabtype = Type.GetTypeFromProgID("matlab.application");

    object matlab;
    matlab = Activator.CreateInstance(matlabtype);

    Execute(matlabtype, matlab, "clear;");
    Execute(matlabtype, matlab, "path(path,'H:/bla/bla');");
    Execute(matlabtype, matlab, "Object = ClassName();");
    Execute(matlabtype, matlab, "Object.parameter1 = 100;");
    Execute(matlabtype, matlab, "Object.parameter2 = 300;");
    object o = Execute(matlabtype, matlab, "Object.ComputeSomething()");
    }
    catch (Exception e)
    {

    }
}

创建特定类的对象,设置一些属性并计算某些东西。这里:

ComputeSomething();

返回一个标量。

我只是想知道这是否是编程的最佳方法,以及在不使用字符串操作的情况下获取实际标量值的最简洁方法是什么(例如删除ans =)?

感谢。

基督教

1 个答案:

答案 0 :(得分:0)

您可以使用一些命令从matlab检索数据。要获得标量,您可以调用GetVariable。

Execute(matlabtype, matlab, "result = Object.ComputeSomething()");
GetVariable(matlabtype, matlab, "result", "base")

请参阅Call MATLAB COM Automation Server了解可用的电话。